PyGTK - Dizüstü Bilgisayar Sınıfı
Not defteri gereci sekmeli bir kapsayıcıdır. Bu kapsayıcıdaki her sekme farklı bir sayfayı tutar ve sayfalar üst üste binmiş şekilde görünür. Sekmenin etiketine tıklanarak istenen herhangi bir sayfa görünür hale getirilir. Etiketler, üstte veya altta veya solda veya sağda görüntülenecek şekilde yapılandırılabilir. İçine yerleştirilmiş diğer widget'ların bulunduğu bir kap widget'ı veya tek bir widget, her sayfanın altına yerleştirilir.
Bir görünümde görüntülenecek veriler çok büyükse, farklı sayfalarda gruplandırılır ve her biri bir Defter widget'ının bir sekmesinin altına yerleştirilir. Bu tür bir kontrol çok yaygın olarak kullanılmaktadır. Örneğin İnternet tarayıcısı, farklı sekmelerdeki farklı sayfaları işlemek için bu sekmeli ekranı kullanır.
Aşağıdaki, gtk.Notebook sınıfının bir yapıcısıdır -
gtk.Notebook()
Aşağıdakiler gtk.Notebook sınıfının sık kullanılan yöntemleridir -
append_page(child, label)- Bu, not defterine sekmedeki etiket olarak tab_label ile belirtilen bir widget'ı içeren bir sayfa ekler. Varsayılan bir etiket kullanmak için tab_label Hiçbiri olabilir.
insert_page(child, label, position) - Bu, not defterine konuma göre belirtilen konumda bir sayfa ekler.
remove_page(index) - Bu, belirtilen dizindeki bir sayfayı kaldırır.
get_current_page() - Bu, geçerli sayfanın sayfa dizinini döndürür.
set_current_page(index) - Bu, dizin tarafından belirtilen sayfa numarasına geçer.
set_show_tabs()- Yanlışsa, sekmeler görünmez. Bu, varsayılan olarak Doğru'dur.
set_tab_pos(pos)- Bu, not defterindeki sayfaları değiştirmek için sekmelerin çizildiği kenarı ayarlar. Önceden tanımlanmış sabitler -
gtk.POS_LEFT
gtk.POS_RIGHT
gtk.POS_TOP
gtk.POS_BOTTOM
set_tab_label_text(child, text) - Bu, belirtilen metinle yeni bir etiket oluşturur ve bunu, alt öğenin bulunduğu sayfanın sekme etiketi olarak ayarlar.
Gtk.Notebook widget'ı aşağıdaki sinyalleri verir -
geçerli sayfayı değiştir | Bu, sayfa ileri veya sayfa geri isteği gönderildiğinde yayınlanır |
odak sekmesi | Odak sekmeyle değiştirildiğinde bu yayınlanır. |
sayfa eklendi | Bu, not defterine bir sayfa eklendiğinde çıkar. |
sayfa kaldırıldı | Bu not defterinden bir sayfa kaldırıldıktan sonra yayınlanır. |
sayfa seç | Bu, yeni bir alt sayfa seçildiğinde yayınlanır. |
geçiş sayfası | Bu, not defteri sayfası değiştirildiğinde yayınlanır. |
Misal
Aşağıdaki örnekte, üç sayfalı bir gtk.Notebook, üst düzey bir gtk.Window'a yerleştirilmiştir. İlk sayfa, içinde bir etiket ve Giriş alanının paketlendiği bir VBox içerir. 'Nitelikler' etiketli ikinci sayfada, birbirini dışlayan üç RadioButton parçacığının eklendiği bir HButtonBox bulunur. Üçüncü sayfanın bir TextView nesnesi vardır. Sayfa etiketleri üstte görüntülenir.
Kodu inceleyin -
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Notebook Demo")
self.set_default_size(250, 200)
nb = gtk.Notebook()
nb.set_tab_pos(gtk.POS_TOP)
vbox = gtk.VBox(False, 5)
vb = gtk.VBox()
hbox = gtk.HBox(True, 3)
valign = gtk.Alignment(0.5,0.25, 0, 0)
lbl = gtk.Label("Name of student")
vb.pack_start(lbl, True, True, 10)
text = gtk.Entry()
vb.pack_start(text, True, True, 10)
valign.add(vb)
vbox.pack_start(valign)
nb.append_page(vbox)
nb.set_tab_label_text(vbox, "Name")
hb = gtk.HButtonBox()
btn1 = gtk.RadioButton(None,"Degree")
hb.add(btn1)
btn2 = gtk.RadioButton(btn1,"P.G.")
hb.add(btn2)
btn3 = gtk.RadioButton(btn1,"Doctorate")
hb.add(btn3)
nb.append_page(hb)
nb.set_tab_label_text(hb, "Qualification")
tv = gtk.TextView()
nb.append_page(tv)
nb.set_tab_label_text(tv, "about")
self.add(nb)
self.connect("destroy", gtk.main_quit)
self.show_all()
if __name__ == '__main__':
PyApp()
gtk.main()
Yürütme üzerine, yukarıdaki kod üç sayfalı bir Defter görüntüler -