【问题标题】:cleanlook style for message box pyqt4消息框pyqt4的cleanlook样式
【发布时间】:2013-09-06 13:42:04
【问题描述】:

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

谁能告诉我如何使这个看起来也很干净

【问题讨论】:

    标签: pyqt4 qmessagebox


    【解决方案1】:

    要更改应用程序的样式,您应该使用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)
    

    【讨论】:

    • 感谢您的澄清。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    相关资源
    最近更新 更多