PyGTK - Kutu Sınıfı
Gtk.Box sınıfı, widget'ların dikdörtgen bir alana yerleştirildiği bir kabın işlevselliğini tanımlayan soyut bir sınıftır. gtk.HBox ve gtk.VBox widget'ları bundan türetilir.
Gtk.Hbox'taki alt widget'lar aynı satırda yatay olarak düzenlenmiştir. Öte yandan, gtk.VBox'ın alt widget'ları aynı sütunda dikey olarak düzenlenmiştir.
gtk.Box sınıfı aşağıdaki yapıcıyı kullanır -
gtk.Box(homogenous = True, spacing = 0)
Homojen özellik varsayılan olarak True olarak ayarlanmıştır. Sonuç olarak, tüm alt widget'lara eşit tahsis verilir.
gtk.Box, başlangıç veya bitiş referansıyla belirli bir konuma referansla alt widget'ları yerleştirmek için paketleme mekanizmasını kullanır. pack_start () yöntemi, widget'ları baştan sona yerleştirir. Aksine, pack_end () yöntemi widget'ları uçtan başa koyar. Alternatif olarak pack_start () 'a benzer add () yöntemini kullanabilirsiniz.
Aşağıdaki yöntemler gtk.HBox ve gtk.VBox için kullanılabilir -
gtk_box_pack_start ()
gtk_box_pack_end ()
gtk_box_pack_start ()
Bu yöntem ekler child kutunun başlangıcına göre paketlenmiş kutuya -
pack_start(child, expand = True, fill = True, padding = 0)
Aşağıdakiler parametrelerdir -
child - Bu, kutuya eklenecek widget nesnesidir
expand- Çocuğa kutuda fazladan boşluk verilecekse, bu True olarak ayarlanır. Ekstra boşluk tüm çocuk arasında bölünürwidgets.
fill- True ise, çocuğa fazladan alan tahsis edilecektir. Aksi takdirde bu parametre dolgu olarak kullanılır.
padding - Bu, kutudaki widget'lar arasındaki piksel cinsinden boşluktur.
gtk_box_pack_end ()
Bu, kutunun sonuna göre paketlenmiş olarak kutuya çocuk ekler.
pack_end (child, expand = True, fill = True, padding = 0)
Aşağıdakiler parametrelerdir -
child - Bu, eklenecek widget nesnesidir
expand- Çocuğa kutuda fazladan boşluk verilecekse, bu True olarak ayarlanır. Bu fazladan boşluk, tüm alt gereçler arasında bölünmüştür.
fill - True ise, aksi takdirde dolgu olarak kullanılacak çocuğa fazladan alan tahsis edilecektir.
padding - Bu, kutudaki widget'lar arasındaki piksel cinsinden boşluktur.
set_spacing (spacing) kutunun alt öğeleri arasına yerleştirilecek piksel sayısını ayarlayan işlevdir.
Yöntem add (widget)gtk.Container sınıfından miras alınır. Konteynere widget ekler. Bu yöntem, pack_start () yöntemi yerine kullanılabilir.
Misal
Aşağıda verilen örnekte, üst düzey pencere bir dikey kutu (gtk.VBox nesne kutusu) içerir. Sırasıyla bir VBox nesnesi vb ve HBox nesnesi hb'ye sahiptir. Üstteki kutuya dikey olarak bir etiket, bir giriş widget'ı ve bir düğme yerleştirilmiştir. Alt kutuda başka bir etiket seti, giriş ve düğme dikey olarak yerleştirilmiştir.
Aşağıdaki kodu inceleyin -
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Box demo")
box = gtk.VBox()
vb = gtk.VBox()
lbl = gtk.Label("Enter name")
vb.pack_start(lbl, expand = True, fill = True, padding = 10)
text = gtk.Entry()
vb.pack_start(text, expand = True, fill = True, padding = 10)
btn = gtk.Button(stock = gtk.STOCK_OK)
vb.pack_start(btn, expand = True, fill = True, padding = 10)
hb = gtk.HBox()
lbl1 = gtk.Label("Enter marks")
hb.pack_start(lbl1, expand = True, fill = True, padding = 5)
text1 = gtk.Entry()
hb.pack_start(text1, expand = True, fill = True, padding = 5)
btn1 = gtk.Button(stock = gtk.STOCK_SAVE)
hb.pack_start(btn1, expand = True, fill = True, padding = 5)
box.add(vb)
box.add(hb)
self.add(box)
self.show_all()
PyApp()
gtk.main()
Yukarıdaki kod aşağıdaki çıktıyı üretecektir -