PyGTK - Takvim Sınıfı
PyGTK araç setindeki Takvim widget'ı, bir seferde bir aylık görünümle basit bir takvim görüntüler. Ay ve yılı değiştirmek için gezinme kontrolleri varsayılan olarak görüntülenir. Görüntü seçenekleri uygun şekilde yapılandırılabilir.
Month özelliğinin değeri 0 ila 11 arasındadır ve date özelliğinin değeri 1 ila 31 arasındadır.
Gtk.Calendar nesnesi oluşturmak için basit bir yapıcı vardır -
cal = gtk.Calendar()
Varsayılan görüntüleme stili, gün adlarının yanı sıra geçerli ay ve yılı gösterir.
Gtk.Calendar sınıfı aşağıdaki yöntemlere sahiptir -
Calendar.select_month (mm, yy) - Bu, takvim görünümünü belirtilen şekilde değiştirir. mm ve yy.
Calendar.select_day (dd) - Bu, belirtilenleri seçer dd 1 ile 31 arasında bir değere sahip olduğunda takvimde. dd 0 ise geçerli gün seçimi kaldırılır.
Calendar.display_options () - Bu, takvim görüntüleme seçeneklerini aşağıdakilerle belirtilen değere ayarlar: flags. Olası görüntüleme seçenekleri aşağıdakilerin birleşimidir:
gtk.CALENDAR_SHOW_HEADING | Ay ve yılın görüntülenmesi gerektiğini belirtir. |
gtk.CALENDAR_SHOW_DAY_NAMES | Üç harfli gün açıklamalarının olması gerektiğini belirtir. |
gtk.CALENDAR_NO_MONTH_CHANGE | Kullanıcının takvimle ay değiştirmesini engeller. |
gtk.CALENDAR_SHOW_WEEK_NUMBERS | Takvimin sol tarafında, geçerli yılın her hafta numaralarını görüntüler. |
gtk.CALENDAR_WEEK_START_MONDAY | Takvim haftasını varsayılan Pazar yerine Pazartesi günü başlatır. |
Calendar.get_date () - Bu, takvimin geçerli yılını, ayını ve seçilen gün numaralarını bir demet (yıl, ay, gün) olarak alır.
Gtk.Calendar widget'ı aşağıdaki sinyalleri verir -
gün seçildi | Bu, kullanıcı tarafından veya programlı olarak bir gün seçildiğinde yayınlanır. |
ay değiştirildi | Bu, takvim ayı programlı olarak veya kullanıcı tarafından değiştirildiğinde yayınlanır. |
gelecek ay | Bu, kullanıcı takvim başlığındaki "gelecek ay" gezinme denetimini tıkladığında yayınlanır. |
gelecek yıl | Bu, kullanıcı takvim başlığındaki "gelecek yıl" gezinme denetimini tıkladığında yayınlanır. |
önceki ay | Bu, kullanıcı takvim başlığındaki "önceki ay" gezinme denetimini tıkladığında yayınlanır. |
önceki yıl | Bu, kullanıcı takvim başlığındaki "önceki yıl" gezinme denetimini tıkladığında yayınlanır. |
Aşağıdaki örnekte, bir gtk.Calendar denetimi ve dört düğme, üst düzey pencereye yerleştirilmiştir.
'Başlık' düğmesi tıklandığında, Takvim'in görüntüleme seçenekleri SHOW_HEADING olarak ayarlanır -
def heading(self, widget):
self.cal.set_display_options(gtk.CALENDAR_SHOW_HEADING)
Kullanıcı 'gün adı' düğmesini tıkladığında, geri arama, görüntüleme seçeneklerini SHOW_DAY_NAMES olarak ayarlar -
def dayname(self, widget):
self.cal.set_display_options(gtk.CALENDAR_SHOW_DAY_NAMES)
Her iki ekran seçeneği de 'her ikisi' düğmesine basıldığında etkinleştirilir. Başlangıç olarak, tüm görüntüleme seçenekleri bayrakları 0 olarak ayarlanarak kaldırılır.
self.cal.set_display_options(0)
'Ayarla' düğmesi, o anda işaretlenmiş tarihi gösteren bir mesaj kutusu açar.
tp = self.cal.get_date()
str1 = str(tp[0])
str2 = str(tp[1]+1)
str3 = str(tp[2])
label = gtk.Label("Date selected:"+str3+"-"+str2+"-"+str1)
dialog.vbox.add(label)
label.show()
Misal
Aşağıdaki kodu inceleyin -
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Calendar Demo")
self.set_size_request(300, 200)
self.set_position(gtk.WIN_POS_CENTER)
vbox = gtk.VBox(False, 5)
self.cal = gtk.Calendar()
halign1 = gtk.Alignment(0.5, 0.5, 0, 0)
halign1.add(self.cal)
self.cal.set_display_options(0)
valign = gtk.Alignment(0, 1, 0, 0)
vbox.pack_start(halign1)
self.btn1 = gtk.Button("set")
self.btn2 = gtk.Button("heading")
self.btn3 = gtk.Button("day name")
self.btn4 = gtk.Button("Both")
hbox = gtk.HBox(True, 3)
hbox.add(self.btn1)
hbox.add(self.btn2)
hbox.add(self.btn3)
hbox.add(self.btn4)
halign = gtk.Alignment(0.5, 0.5, 0, 0)
halign.add(hbox)
vbox.pack_start(halign, False, True, 10)
self.add(vbox)
self.btn1.connect("clicked", self.selectdate)
self.btn2.connect("clicked", self.heading)
self.btn3.connect("clicked", self.dayname)
self.btn4.connect("clicked", self.bothflags)
self.connect("destroy", gtk.main_quit)
self.show_all()
def heading(self, widget):
self.cal.set_display_options(gtk.CALENDAR_SHOW_HEADING)
def dayname(self, widget):
self.cal.set_display_options(gtk.CALENDAR_SHOW_DAY_NAMES)
def bothflags(self, widget):
self.cal.set_display_options(gtk.CALENDAR_SHOW_HEADING|gtk.CALENDAR_SHOW_DAY_NAMES)
def selectdate(self, widget):
tp = self.cal.get_date()
dialog = gtk.Dialog("My dialog",
self,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
(gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
str1 = str(tp[0])
str2 = str(tp[1]+1)
str3 = str(tp[2])
label = gtk.Label("Date selected:"+str3+"-"+str2+"-"+str1)
dialog.vbox.add(label)
label.show()
res = dialog.run()
dialog.destroy()
PyApp()
gtk.main()
Yukarıdaki kod aşağıdaki çıktıyı üretecektir -