wxPython按钮事件在Windows和&amp ;;中显示不一致的结果Linux的

时间:2012-12-11 09:54:21

标签: python wxpython

我是一名在wxPython / Python中开发应用程序的新程序员。我从按钮事件得到不一致的结果如下。

def OnButton1Button(self, event):

    self.textCtrl9.AppendText(" 1st instance\n")
    time.sleep(5)
    self.textCtrl9.AppendText(" 2nd instance\n")

应该打印1st instance,然后在5秒后再次打印2nd instance。这在Windows操作系统中运行良好,但在Linux中,我得到了1st instance&按下按钮5秒后,一次{同时} 2nd instance

我真的很困惑。有人可以建议我一些解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:1)

这应该使用 wx.Timer

来完成

假设您的主要目标是在5秒后更新GUI,请将第二个AppendText放入函数中,并将其设置为使用wx.Timer调用。这样,您的GUI在5秒延迟期间仍然会响应。

在GUI中的事件处理程序中调用time.sleep(),因此在主线程中,将使您无法头疼。

另一方面,如果你真的希望你的GUI在5秒内没有响应,你应该明确地这样做,比如在窗口中使用Enable(False),再次使用一个Enable(True)来调用5秒钟后计时器。这样,将向用户指示GUI处于非活动状态。