自定义QDialog窃取全屏应用程序焦点并显示任务栏

2024-10-06 07:02:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何用我自己的按钮制作一个自定义的QDialog消息框,类似于下面的代码。

到目前为止,我有这个代码,它运行得很好。这个代码的问题是它从一个全屏应用程序启动,它抢走了它的焦点(顶部的主任务栏与QDialog对象一起出现)。我希望这与我的全屏应用程序在后台无缝工作,这意味着当我单击按钮显示此消息框时,顶部不应出现任何任务栏。我在Ubuntu11.10中使用PyQt4和python2.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_()

Tags: 代码self应用程序消息按钮全屏任务栏clicked
1条回答
网友
1楼 · 发布于 2024-10-06 07:02:19

我认为你的问题是你没有给你的父母。这使得Qt将其视为顶级窗口。尝试将消息框的实例化更改为如下所示:

msgBox = QMessageBox(self)

相关问题 更多 >