我是QT的新手,这可能是非常基本的,但我无法得到一个样式表来处理我的消息框。你知道吗
我现在调用的代码来自:
self.actionLoad_Portfolio_Settings.triggered.connect(self.openPortfolioSettings)
并且是:
def openPortfolioSettings(self):
# some code
QMessageBox.about(self, "Portfolio settings","Portfolio settings loaded successfullly")
QMessageBox.setStyleSheet(self,".QMessageBox.about {border: 20px solid black;border-radius: 10px;background-color: rgb(1, 1, 1);}")
但这并没有起任何作用,消息框会像以前一样出现。你知道吗
最后,我要做的是为所有对话框、widows和主窗口设置一个样式表,这样我就可以使用如下内容:
my_stylesheet=foo
somewindow.setStyleSheet(my)stylesheet)
非常感谢您的帮助。你知道吗
你知道吗QMessageBox.about文件()是一个静态方法,因此您无法直接获取对象来设置样式表,因此有几种策略取决于您拥有的附加代码以及是否要将相同的样式应用于所有QMessageBox。你知道吗
如果您只想应用于生成about方法的QMessageBox,那么想法是过滤,在本例中,我将假设它是唯一可见的QMessageBox,然后使用
QTimer.singleShot(0, ...)
通过其父级使用findChildren()
方法获取小部件:相反,如果要将相同的样式应用于窗口中的所有QMessageBox子项,请将样式放置在窗口的样式表中:
相反,如果希望对完整应用程序中的所有QMessageBox应用相同的样式,请在QApplication中设置样式表:
另一个解决办法是不使用QMessage.about关于()方法,但要创建QMessageBox对象:
相关问题 更多 >
编程相关推荐