我想知道如何使用我自己的按钮制作自定义 QDialog 消息框,类似于下面的代码。
到目前为止,我已经有了这段代码,它运行良好。此代码的问题在于它从全屏应用程序启动,并且窃取了它的焦点(顶部的主任务栏与 QDialog 对象一起出现)。我希望它能在后台与我的全屏应用程序无缝协作,这意味着当我单击按钮以显示此消息框时,顶部的任务栏不应出现。我在 Ubuntu 11.10 中使用 PyQt4 和 Python 2.7.2 工作。
btnOne = QPushButton("One", self)
btnTwo = QPushButton("Two", self)
btnOne.clicked.connect(self.workForOne)
btnTwo.clicked.connect(self.workForTwo)
msgBox = QMessageBox()
msgBox.setText("<center>This is a custom question!</center>")
msgBox.setWindowTitle("Question")
msgBox.setWindowModality(Qt.ApplicationModal)
msgBox.addButton(btnOne, QMessageBox.ActionRole)
msgBox.addButton(btnTwo, QMessageBox.ActionRole)
msgBox.addButton(QMessageBox.Cancel)
msgBox.exec_()
请您参考如下方法:
我认为您遇到的问题是您没有为您的 msgBox 提供父级。这使得 Qt 将其视为顶级窗口。尝试将消息框的实例化更改为如下所示:
msgBox = QMessageBox(self)
