我尝试与房间聊天。用户登录然后选择房间。之后,聊天打开。在聊天中,用户可以去另一个房间。 我现在处于gui的水平。当主要的gui(聊天)起来时,用户可以写出他想要的东西。问题是当他选择去另一个房间时(在这个选项中,打开另一个选择房间的gui)gui崩溃 - “python.exe已停止工作”。 我的问题是,是否可以使用app.mainloop运行应用程序并在几分钟后运行另一个app.mainloop? 因为当我运行2个主循环时,问题就发生了......
这里有一些代码:
def enableChat(roomId,username):
app1 = wx.PySimpleApp(None)
frame_1 = MainGUI(None,roomId,username,"Chat")
print "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$",wx.GetTopLevelWindows()
app1.MainLoop()
def enableChooseRoom(rooms,roomsOfUser):
app2 = wx.PySimpleApp(None)
frame_2 = ChooseRoomWindow(None,rooms,roomsOfUser,title="Choosing Room")
print wx.GetTopLevelWindows()
app2.MainLoop()
return choice
t3 = threading.Thread(target=enableChat,args=(1,"ido",))
t3.start()
t4 = threading.Thread(target=enableChooseRoom,args=("1-sport 1-sport 2-movie","",))
t4.start()
感谢
答案 0 :(得分:0)
您无法同时运行两个主循环。如果用户进入不同的房间,您应该在同一个应用程序中打开一个新的框架,标签等。您可以从主应用程序中获得许多其他框架,或者您可以使用Notebook小部件并遵循Pidgin在新标签中打开新房间/聊天会话的设计。
也弃用wx.PySimpleApp
。您应该使用wx.App(False)
代替。