打开两个主循环时帧崩溃

时间:2015-03-10 16:43:44

标签: wxpython

我尝试与房间聊天。用户登录然后选择房间。之后,聊天打开。在聊天中,用户可以去另一个房间。 我现在处于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()

感谢

1 个答案:

答案 0 :(得分:0)

您无法同时运行两个主循环。如果用户进入不同的房间,您应该在同一个应用程序中打开一个新的框架,标签等。您可以从主应用程序中获得许多其他框架,或者您可以使用Notebook小部件并遵循Pidgin在新标签中打开新房间/聊天会话的设计。

也弃用wx.PySimpleApp。您应该使用wx.App(False)代替。