pyside second qt gui没有出现

时间:2013-11-13 16:02:07

标签: python qt pyside

我的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。

有谁知道如何解决这个奇怪的问题?如何切换表格?

1 个答案:

答案 0 :(得分:1)

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

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

app = QApplication(sys.argv)
dialog = LoginWindow()
if dialog.exec_() == QDialog.Accepted:
    window = ChatWindow()
    window.show()
    app.exec_()
else:
    print('Login cancelled')