Как изменить цвет шрифта или фона кнопки в QMessageBox

При работе с PyQt5 возникла проблема. Дело в том, что при работе на Windows возникла необходимость поменять цвет кнопок в QMessageBox.

Подскажете пожалуйста, как можно обратится кнопке и задать ей stylesheet?
Если это невозможно, то как можно задать ей цвет шрифта или фона при добавлении кнопки?

введите сюда описание изображения

Имеется стандартная кнопка ok и ее цвет не устраивает.


Ответы (1 шт):

Автор решения: Rafael F.

Задайте следующий stylesheet и установите цвет который вам нужен

setStyleSheet("QMessageBox QPushButton { color: white; background-color: green; }");

Более подробный пример:

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_())
→ Ссылка