禁用pyqt中的窗口功能

时间:2013-11-11 12:46:44

标签: python qt user-interface pyqt

我用Qt库在python中创建了一个QMainWindow。当用户点击关闭按钮时,我提示警告QMessageBox(是/否)。我想完全禁用主窗口的功能,直到用户选择是或否 - 到第二个窗口 - 。 (我想要"冷冻"主窗口。) 我试过" self.setEnabled(False)"对于主窗口,但用户仍然可以点击最小化和最大化按钮。

提前谢谢。

3 个答案:

答案 0 :(得分:1)

你想要的是一个模态对话框。查看QDialog的文档和“模态详细说明”对话框中的部分。模态对话框接管UI,因此它是与用户交互的唯一点,直到它被解除,而无模式对话框允许继续与应用程序的其他窗口交互。文档讨论了制作对话模式的各种方法以及每种模式的优缺点。

QDialog

答案 1 :(得分:1)

尝试在构造函数上设置窗口模式。这是一个示例:

def _init_(self):
    self.setWindowModality(QtCore.Qt.ApplicationModal))

答案 2 :(得分:0)

尼科列斯库的答案是完美且可行的。 当您打开popup / modal(QWidgets.QWidget)窗口并想要禁用父窗口时,直到打开子窗口,只需使用hist示例。

def init (自己): self.setWindowModality(QtCore.Qt.ApplicationModal))