我的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。
有谁知道如何解决这个奇怪的问题?如何切换表格?
答案 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')