在 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时,必须从用户定义的运行时属性中设置
当在docker容器中设置php时,如何在vscode中设置php可执行路径php.validate.executablePath?