2

我的 python 脚本中有一个 Qapplication,它为我的聊天服务器提供了 logingui。登录完成后,我想调用我的聊天 gui。为此,我使用了以下代码:

app = QApplication(sys.argv)
form = LoginWindow()
form.show()
app.exec_()
#login done
form = ChatWindow()
form.show()
app.exec_()

当我用聊天的“空”gui启动它时,这很有效。所以只有必要的东西才能启动。但是,当我开始连接信号并填充时,第二个窗口就不再显示了。控制台从 init 的开头打印一条语句,但之后它变得沉默并且不存在 gui。

有谁知道我该如何解决这个奇怪的问题?应该如何切换表单?

4

1 回答 1

1

登录窗口应该是QDialog的子类,以便它可以与主应用程序分开运行。QDialog 有自己的事件循环,并提供一个返回码,可用于检查用户采取了哪些操作。

因此,鉴于此,您的代码将变为:

app = QApplication(sys.argv)
dialog = LoginWindow()
if dialog.exec_() == QDialog.Accepted:
    window = ChatWindow()
    window.show()
    app.exec_()
else:
    print('Login cancelled')
于 2013-11-13T17:52:03.153 回答