在QMessageBox中设置QPushButton的背景

时间:2018-03-06 22:10:23

标签: python pyqt5

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

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

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

这是我的代码片段。我试图将上面的片段放入函数中,以便在单击按钮时,消息框中QPushButton的颜色将为银色。是否存在问题,因为它似乎没有任何改变。我应该在代码中放置此样式表功能?

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 QPushButton{background-color: Silver;}")

1 个答案:

答案 0 :(得分:1)

在创建QMessageBox之前,应该调用setStyleSheet()方法。以下是如何做到这一点的简单示例:

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 QPushButton{background-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_())