我有一个PYQT4应用程序。我尝试根据用户交互显示很多不同的消息。我遇到的问题是使用QMessageBox doest显示的消息呈现干净的外观样式,而应用程序的其他部分适用于Clean外观样式。
我尝试使用以下代码,但它对该消息起作用。
# set messagebox properties
msgbox=QMessageBox()
font = QFont()
font.setFamily(_fromUtf8("Levenim MT"))
font.setPointSize(15)
msgbox.setFont(font)
msgbox.setStyle(QStyleFactory.create('Cleanlooks'))
msgbox.information(self,"Download Message", "donuts")
有人可以告诉我如何以干净的外观风格制作它
答案 0 :(得分:0)
要更改应用程序的样式,您应该使用QApplication.setSyle
,然后在整个GUI中使用一致的样式。
设置QWidgets的样式仅设置小部件本身的样式。
将窗口小部件的GUI样式设置为样式。风格对象的所有权不会转移。
如果未设置样式,则窗口小部件将使用应用程序的样式QApplication.style()。
设置窗口小部件的样式对现有或未来的子窗口小部件没有影响。
警告:此功能对于演示目的非常有用,您可以在其中显示Qt的样式功能。真正的应用程序应该避免它并使用一种一致的GUI样式。
这意味着如果您想要更改窗口小部件及其所有子窗口的样式,您需要通过迭代它们为所有子窗口显式设置它:
cleanlooks = QStyleFactory.create('cleanlooks')
msgbox.setStyle(cleanlooks)
for child in msgbox.findChildren(QWidget):
child.setStyle(cleanlooks)