如何解决在wxPython中使用wx.CallLater
| 我正在尝试制作一个处理基本时间相关功能的对象。我想要这样,当引用任何属性(例如self.Time)时它们都是最新的。但是,由于某种原因,wx.CallLater(1000,self.Tick)似乎没有更新属性。它只会打印一次self.Time,而不是每秒(就像我想要的那样)。 我将如何获得自己想要的行为?除了wx.CallLater(1000,self.Tick)外,我还应该使用其他东西吗? 片段:import wx,re,time,win32api,calendar
class TimeDate :
def __init__ (self) :
self.Tick()
def Tick (self) :
self.Year = int(time.strftime(\"%Y\"))
self.Month = int(time.strftime(\"%m\"))
self.Calendar = calendar.month(self.Year,self.Month)
self.Date = time.strftime(\'%A,%B %d,%Y\')
self.Time = time.strftime(\'%I:%M %s %p\')
print self.Time
wx.CallLater(1000,self.Tick)
解决方法
您想要的是wx.Timer,而不是wx.CallAfter或wx.CallLater。有关更多信息,请参见以下有关计时器的教程:
http://www.blog.pythonlibrary.org/2009/08/25/wxpython-using-wx-timers/
这些“ Call *”方法都只能触发一次。
,请改用
wx.CallAfter
-wx.CallLater
是一类,应以不同的方式使用。
另一方面,wx.CallAfter
正是您所需要的。
,我认为wx.CallAfter
和wx.CallLater
都只被叫过一次.....
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。