1

選択した日付を常に当日になるように設定しようとしています。どうすればいいですか?

現在、ウィジェットを1日以上放置すると、選択した日付が更新されません。したがって、日付は遅れます。選択した日付を常に最新の状態に変更するにはどうすればよいですか?

4

1 に答える 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()
于 2011-05-28T07:28:46.413 に答える