class CalendarBox(gtk.Dialog):Что данный код умеет делать ? показывает окно выбора даты. Двойной клик на дате является аналогом нажатия кнопки принять, тоесть выбирает дату.
sel_date=None
def __close__(self,widget):
self.response(gtk.RESPONSE_CLOSE)
def __on_click(self,widget):
year, month, day=self.calendar.get_date()
self.sel_date=str(day).rjust(2,'0')+'.'+str(month+1).rjust(2,'0')+'.'+str(year)
self.__close__(widget)
def __calendar_click(self,widget):
self.__on_click(widget)
def get_data(self):
return self.sel_date
def __init__(self):
super(CalendarBox,self).__init__()
self.set_decorated(False)
self.calendar=gtk.Calendar()
self.vbox.pack_start(self.calendar,False,True,4)
self.calendar.connect('day-selected-double-click',self.__calendar_click)
bt1=gtk.Button('Принять')
bt2=gtk.Button('Закрыть')
bt1.connect('clicked',self.__on_click)
bt2.connect('clicked',self.__close__)
self.action_area.pack_start(bt1,False,True,4)
self.action_area.pack_start(bt2,False,True,4)
self.show_all()
Пример использования :
cl=CalendarBox()
cl.run()
text=cl.get_data() # получение выбранной даты в String
cl.destroy()
Комментариев нет:
Отправить комментарий