PyQt:自定义小部件与主窗口一起出现

时间:2014-12-20 18:13:17

标签: python window pyqt show

我创建了一个主GUI,并在一个名为one.py的文件中编码。需要从主脚本调用自定义GUI /小部件。第二个自定义GUI /小部件是使用qt designer创建的,工作脚本名为second.py。

执行second.py时工作正常。当one.py中的变量发生变化时,必须触发第二个GUI。当变量在one.py中发生变化时,GUI会按预期弹出。但是,与第二个GUI一起,one.py中的下一个小部件也会显示。 one.py的示例脚本如下所示:

if variable:
    self.child_win = PersistenceGui(self)
    self.child_win.show()

    QtGui.QMessageBox.information("Some info to the users.")

在上述情况下,子窗口和信息框一起显示。但是我想在关闭子窗口/ GUI框后才显示信息框。我在哪里弄错了?

1 个答案:

答案 0 :(得分:1)

PersistenceGui设为QDialog的子类,然后将其显示为:

    self.child_win.exec_()

这将阻止,直到用户关闭对话框,然后将显示消息框。

修改

如果您想知道用户是否取消了对话框,请尝试以下操作:

    if self.child_win.exec_() == QtGui.QDialog.Accepted:
        QtGui.QMessageBox.information("Some info to the users.")
    else:
        # ask if user wants to close main window, or whatever...