我用 Qt 库在 python 中创建了一个 QMainWindow。当用户单击关闭按钮时,我会提示警告 QMessageBox(是/否)。我想完全禁用主窗口的功能,直到用户选择是或否 - 到第二个窗口 -。(我想要“冻结”主窗口之类的东西。)我已经为主窗口尝试了“self.setEnabled(False)”,但用户仍然可以单击最小化和最大化按钮。
先感谢您。
我用 Qt 库在 python 中创建了一个 QMainWindow。当用户单击关闭按钮时,我会提示警告 QMessageBox(是/否)。我想完全禁用主窗口的功能,直到用户选择是或否 - 到第二个窗口 -。(我想要“冻结”主窗口之类的东西。)我已经为主窗口尝试了“self.setEnabled(False)”,但用户仍然可以单击最小化和最大化按钮。
先感谢您。
尝试在构造函数上设置窗口模式。这是一个例子:
def _init_(self):
self.setWindowModality(QtCore.Qt.ApplicationModal))
你想要的是一个模态对话框。查看 QDialog 的文档和模态对话框的详细说明中的部分。模态对话框接管 UI,因此它是与用户交互的唯一点,直到它被关闭,而无模态对话框允许与应用程序的其他窗口继续交互。文档讨论了制作对话模式的各种方法以及每种方法的优缺点。
Nicolescu's answer is perfect and working. When you open popup/modal(QWidgets.QWidget) window, and want to disable parent window activiy, until the child is open, just use hist example.
def init(self): self.setWindowModality(QtCore.Qt.ApplicationModal))