PYQT应用程序第二次调用错误消息时崩溃



上下文:我正在使用QTDESIGNER和PYCHARM创建GUI。当主窗口(WIN1(通过QPUSHBUTTON调用第二个窗口(Win2(时,我发生的问题会发生,然后由于缺乏用户输入而打开错误消息。我正在使用外部文件(main.py(来处理所有窗口的逻辑和事件,而不是由qtdesigner生成的编辑代码。

问题:我的设置方式,用户需要根据用户的选择来从Combobox中选择一个选项,该应用程序启动Win2或Win3

用户从combobox->错误消息中选择没有选项
用户选择选项1-> Win2打开,Win1关闭
用户选择选项2-> Win3打开,Win1关闭
该问题发生在用户退出2/3赢,然后返回Win1
用户选择选项1/2->正确打开窗口,没有问题
用户选择没有选项 ->错误消息 ->用户关闭错误 消息 ->崩溃(或突然的申请退出(
注意:崩溃没有产生错误/警告

这是我用来处理开放/关闭的代码:

class win1(QtGui.QMainWindow, pg1.Ui_MainWindow):
    def __init__(self, parent=None):
        super(win1, self).__init__(parent)
        self.setupUi(self)
        self.btn1.clicked.connect(self.checkuserselection)
        self.addnew = win2(self)
    def checkuserselection(self):
        user_str = str(self.comboBox.currentText())
        if user_str == "Select Option":
            self.errMsg()
        elif user_str == "Option 1":
            self.runaddnew("Window title for option 1")
        else:
            self.runaddnew("window title for option 2")
    def runaddnew(self, title):
        self.addnew.setWindowTitle(title)
        self.addnew.show()
        self.hide()
    @staticmethod
    def errMsg():
        w = QtGui.QMessageBox()
        QtGui.QMessageBox.critical(w, "No Option Selected!")

Win2的代码:

class win2(QtGui.QMainWindow, pg2.Ui_MainWindow):
    def __init__(self, parent=None):
        super(win2, self).__init__(parent)
        self.setupUi(self)
        self.actionExit.triggered.connect(self.closeWindow)
    def closeWindow(self):
        self.close()
        w = win1(self)
        w.show()

用户可以多次收到错误消息而不会突然退出,只要他们没有打开其他窗口之一即可。这使我认为这个问题是Win2中的CloseWindow方法。我对Python/pyqt的了解是有限的,所以我不知道这确实是问题所在。

感谢@ekhumoro,我要发布在此处使用此问题的响应。
在Win2的代码中:

def closeWindow(self):
    self.parent().show()
    self.close()

这起作用是因为Win1创建了Win2

相关内容

  • 没有找到相关文章

最新更新