我的 python 脚本中有一个 Qapplication,它为我的聊天服务器提供了一个登录界面。 登录完成后,我想调用我的聊天图形用户界面。为此,我使用了以下内容 代码:
app = QApplication(sys.argv)
form = LoginWindow()
form.show()
app.exec_()
#login done
form = ChatWindow()
form.show()
app.exec_()
当我用聊天的“空”图形用户界面启动它时,它就起作用了。所以只有必要的东西才能启动。然而,当我开始连接信号并填充第二个窗口时,它就不再显示了。控制台从 init 的开头打印一条语句,但之后它变得安静并且没有 gui 存在。
有谁知道我该如何解决这个奇怪的问题?应该如何切换表单?
请您参考如下方法:
登录窗口应该是QDialog 的子类,以便它可以与主应用程序分开运行。 QDialog 有自己的事件循环,并提供一个返回代码,可用于检查用户执行了哪些操作。
因此,鉴于此,您的代码将变为:
app = QApplication(sys.argv)
dialog = LoginWindow()
if dialog.exec_() == QDialog.Accepted:
window = ChatWindow()
window.show()
app.exec_()
else:
print('Login cancelled')
