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

2024-04-25 19:46:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个用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中,按下按钮延迟5秒后,我一次(同时)得到两个1st instance&;2nd instance。你知道吗

我真的很困惑。有人能给我建议一些解决办法吗。你知道吗

提前谢谢。你知道吗


Tags: instanceselfevent应用程序timewindowsdefwxpython
1条回答
网友
1楼 · 发布于 2024-04-25 19:46:54

这应该使用wx.Timer来完成。你知道吗

假设您的主要目标是在5秒后更新GUI,那么将第二个AppendText放在函数中,并将其设置为使用wx定时器. 这样,您的GUI在5秒的延迟期间仍然会有响应。你知道吗

将对time.sleep()的调用放在GUI的事件处理程序中,从而放在主线程中,会让您头痛不已。你知道吗

另一方面,如果您真的希望GUI在这5秒钟内没有响应,那么应该显式地执行此操作,比如对窗口使用Enable(False),然后在这5秒钟结束时再次使用计时器调用Enable(True)。这样,它将向用户指示GUI处于非活动状态。你知道吗

相关问题 更多 >

    热门问题