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 -