使用time.sleep更新Wxpython GUI而无需GUI“冻结”

时间:2015-04-24 03:02:46

标签: python-2.7 user-interface wxpython

我使用wxpython编写了三个独立的GUI。

def __init__(self, app):
    self.gui1= Gui1(None)
    self.gui1.Show()
    self.gui2= Gui2(None)
    self.gui2.Show()
    self.run_game()

def run_game(self):
    for i in range(0, 100):
        time.sleep(0.5)
        self.gui1.method1()
        self.gui2.method1()

if __name__ == '__main__':
    app = wx.App(False)
    controller = Controller(app)
    app.MainLoop()

但是,当我运行此代码时,GUI不会显示并显示为“冻结”。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

请勿使用time.sleep。它会阻止主循环。相反,请使用wx.Timer()。它们在自己的非阻塞事件循环中运行。您可以阅读文档here或查看以下教程: