消息框pyqt4的cleanlook样式

时间:2013-09-06 13:42:05

标签: pyqt4 qmessagebox

我有一个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")

有人可以告诉我如何以干净的外观风格制作它

1 个答案:

答案 0 :(得分:0)

要更改应用程序的样式,您应该使用QApplication.setSyle,然后在整个GUI中使用一致的样式。

设置QWidgets的样式仅设置小部件本身的样式。

QWidget.setStyle

  

将窗口小部件的GUI样式设置为样式。风格对象的所有权不会转移。

     

如果未设置样式,则窗口小部件将使用应用程序的样式QApplication.style()。

     

设置窗口小部件的样式对现有或未来的子窗口小部件没有影响。

     

警告:此功能对于演示目的非常有用,您可以在其中显示Qt的样式功能。真正的应用程序应该避免它并使用一种一致的GUI样式。

这意味着如果您想要更改窗口小部件及其所有子窗口的样式,您需要通过迭代它们为所有子窗口显式设置它:

cleanlooks = QStyleFactory.create('cleanlooks')
msgbox.setStyle(cleanlooks)
for child in msgbox.findChildren(QWidget):
    child.setStyle(cleanlooks)