Вы можете установить экземпляр таймера (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()