设置wx.calendar的CalendarCtrl控件日期
我想把选中的日期设置成当前的日期。请问我该怎么做呢?
现在如果我让这个小工具放着超过一天,选中的日期就不会自动更新了。这样的话,日期就会落后。请问我该怎么改变选中的日期,让它始终保持最新呢?
1 个回答
1
你可以设置一个定时器(wx.Timer
),让它每隔几秒或几分钟就触发一次事件(wx.EVT_TIMER
),然后把这个事件绑定到一个负责更新日历的函数上,这个函数会用当前的日期(wx.DateTime_Now()
)来更新日历,如果需要的话。
下面是一个简单的示例代码(试着改变日期:过了一秒后它会自动回到当前日期):
import wx
import wx.calendar
class MyCalendar(wx.Frame):
def __init__(self, *args, **kargs):
wx.Frame.__init__(self, *args, **kargs)
self.cal = wx.calendar.CalendarCtrl(self, -1, wx.DateTime_Now())
self.timer = wx.Timer(self)
self.timer.Start(1000)
self.Bind(wx.EVT_TIMER, self.update_date)
def update_date(self, evt):
date = wx.DateTime_Now()
self.cal.SetDate(date)
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = MyCalendar(None)
frame.Show()
app.MainLoop()