我用Qt库在python中创建了一个QMainWindow。当用户点击关闭按钮时,我提示警告QMessageBox(是/否)。我想完全禁用主窗口的功能,直到用户选择是或否 - 到第二个窗口 - 。 (我想要"冷冻"主窗口。) 我试过" self.setEnabled(False)"对于主窗口,但用户仍然可以点击最小化和最大化按钮。
提前谢谢。
答案 0 :(得分:1)
你想要的是一个模态对话框。查看QDialog的文档和“模态详细说明”对话框中的部分。模态对话框接管UI,因此它是与用户交互的唯一点,直到它被解除,而无模式对话框允许继续与应用程序的其他窗口交互。文档讨论了制作对话模式的各种方法以及每种模式的优缺点。
答案 1 :(得分:1)
尝试在构造函数上设置窗口模式。这是一个示例:
def _init_(self):
self.setWindowModality(QtCore.Qt.ApplicationModal))
答案 2 :(得分:0)
尼科列斯库的答案是完美且可行的。 当您打开popup / modal(QWidgets.QWidget)窗口并想要禁用父窗口时,直到打开子窗口,只需使用hist示例。
def init (自己): self.setWindowModality(QtCore.Qt.ApplicationModal))