選択した日付を常に当日になるように設定しようとしています。どうすればいいですか?
現在、ウィジェットを1日以上放置すると、選択した日付が更新されません。したがって、日付は遅れます。選択した日付を常に最新の状態に変更するにはどうすればよいですか?
選択した日付を常に当日になるように設定しようとしています。どうすればいいですか?
現在、ウィジェットを1日以上放置すると、選択した日付が更新されません。したがって、日付は遅れます。選択した日付を常に最新の状態に変更するにはどうすればよいですか?
タイマー(wx.Timer
)インスタンスを設定して、wx.EVT_TIMER
数秒/分ごとに生成し、必要に応じて、現在の日付(wx.DateTime_Now()
)でカレンダーを更新するメソッドにイベントをバインドできます。
ここに最小限の動作デモコードがあります(日付を変更してみてください:1秒後に現在の日付に戻ります):
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()