在 QMessageBox 中设置 QPushButton 的背景

Posted

技术标签:

【中文标题】在 QMessageBox 中设置 QPushButton 的背景【英文标题】:Setting background of QPushButton in QMessageBox 【发布时间】:2018-03-06 22:10:22 【问题描述】:

我有一个类,每次执行操作时都会显示一个 QMessageBox。我试图将 QMessageBox 中的按钮颜色设置为银色背景。

此时按钮为蓝色,与 QMessageBox 的背景相同。

我的问题是,如何使用这段代码: QtWidgets.qApp.setStyleSheet("QMessageBox QPushButtonbackground-color: Silver;") 我可以将 QMessageBox 中的 QPushButton 颜色更改为银色。

这是我的代码的 sn-p。我试过把上面的sn-p放到函数里面,这样当按钮被点击的时候,消息框中的QPushButton的颜色就会变成银色。这是否有问题,因为它似乎没有任何改变。我应该将这个 styleSheet 功能放在代码中的什么位置?

self.canonicalAddressesButton.clicked.connect(self.canonical_data_parsed_notification)

def canonical_data_parsed_notification(self):
        QtWidgets.QMessageBox.information(self.mainwindow, 'Notification', 'Canonical Address Data Has Been Parsed!', QtWidgets.QMessageBox.Ok) 
QtWidgets.qApp.setStyleSheet("QMessageBox QPushButtonbackground-color: Silver;")

【问题讨论】:

你必须在创建 QMessageBox 之前执行 setStyleSheet 命令!!!!!! 我只是 Python 的初学者。我只是边走边学 【参考方案1】:

setStyleSheet() 方法应该在创建 QMessageBox 之前被调用。这是一个简单的例子:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QPushButton, qApp, QMessageBox

class App(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setGeometry(0, 0, 300, 200)
        button = QPushButton('Click me', self)
        qApp.setStyleSheet("QMessageBox QPushButtonbackground-color: Silver;")
        button.clicked.connect(self.button_clicked)

    def button_clicked(self):
        QMessageBox.information(self, 'Notification', 'Text', QMessageBox.Ok) 


if __name__ == "__main__":
    app = QApplication(sys.argv)
    widget = App()
    widget.show()
    sys.exit(app.exec_())

【讨论】:

好的。我现在明白你的意思了。它必须在 def_init_(self) 方法中设置。 是的,@eyllanesc 是对的。这里只是一个可以执行并查看结果的示例。

以上是关于在 QMessageBox 中设置 QPushButton 的背景的主要内容,如果未能解决你的问题,请参考以下文章

在xib中设置accessibilityIdentifier nil时,必须从用户定义的运行时属性中设置

在 RichTextBox WPF 中设置文化/语言

当在docker容器中设置php时,如何在vscode中设置php可执行路径php.validate.executablePath?

在代码中设置 IBOutlet 的 Auto Layout 约束

如何在 Laravel 中设置全局变量?

如何在 Netbeans 中设置环境变量?