0

我有一个 PYQT4 应用程序。我尝试根据用户交互显示许多不同的消息。我遇到的问题是使用 QMessageBox 显示的消息并没有以简洁的外观样式出现,而应用程序的其他部分则适用于简洁的外观样式。

我尝试使用以下代码,但它不适用于消息。

# 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")

有人能告诉我如何以干净的外观风格制作这个吗

4

1 回答 1

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)
于 2013-09-06T15:14:38.040 回答