Установка даты в виджете CalendarCtrl wx.calendar - PullRequest
1 голос
/ 28 мая 2011

Я пытаюсь установить выбранную дату так, чтобы она всегда была текущим днем.Как бы я пошел по этому поводу?

В настоящее время, если я оставляю виджет более одного дня, выбранная дата не обновляется.Таким образом, дата будет позади.Как мне изменить выбранную дату, чтобы она всегда была актуальной?

1 Ответ

1 голос
/ 28 мая 2011

Вы можете установить экземпляр таймера (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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...