PyGTK - klasa skrzynkowa
Klasa gtk.Box jest abstrakcyjną klasą definiującą funkcjonalność kontenera, w którym widżety są umieszczone w prostokątnym obszarze. Widżety gtk.HBox i gtk.VBox są z niego wyprowadzane.
Widżety potomne w gtk.Hbox są ułożone poziomo w tym samym wierszu. Z drugiej strony, widżety potomne gtk.VBox są ułożone pionowo w tej samej kolumnie.
Klasa gtk.Box używa następującego konstruktora -
gtk.Box(homogenous = True, spacing = 0)
Właściwość homogeniczna jest domyślnie ustawiona na True. W rezultacie wszystkie widżety podrzędne otrzymują równą alokację.
gtk.Box używa mechanizmu pakowania, aby umieścić w nim widżety potomne w odniesieniu do określonej pozycji, w odniesieniu do początku lub końca. Metoda pack_start () umieszcza widżety od początku do końca. Wręcz przeciwnie, metoda pack_end () umieszcza widżety od końca do początku. Alternatywnie możesz użyć metody add (), która jest podobna do pack_start ().
Następujące metody są dostępne dla gtk.HBox oraz gtk.VBox -
gtk_box_pack_start ()
gtk_box_pack_end ()
gtk_box_pack_start ()
Ta metoda dodaje child do pudełka, zapakowane w odniesieniu do początku pudełka -
pack_start(child, expand = True, fill = True, padding = 0)
Poniżej przedstawiono parametry -
child - To jest obiekt widgetu, który ma zostać dodany do skrzynki
expand- Jest to ustawione na Prawda, jeśli dziecko ma otrzymać dodatkowe miejsce w pudełku. Dodatkowa przestrzeń jest podzielona między wszystkie dzieciwidgets.
fill- Jeśli prawda, dodatkowe miejsce zostanie przydzielone dziecku. W przeciwnym razie ten parametr jest używany jako wypełnienie.
padding - To jest odstęp w pikselach między widżetami w pudełku.
gtk_box_pack_end ()
To dodaje dziecko do pudełka, zapakowane w odniesieniu do końca pudełka.
pack_end (child, expand = True, fill = True, padding = 0)
Poniżej przedstawiono parametry -
child - To jest obiekt widgetu do dodania
expand- Jest to ustawione na Prawda, jeśli dziecko ma otrzymać dodatkowe miejsce w pudełku. Ta dodatkowa przestrzeń jest podzielona między wszystkie widżety podrzędne.
fill - Jeśli prawda, dodatkowe miejsce zostanie przydzielone dziecku, które w innym przypadku zostanie użyte jako wypełnienie.
padding - Jest to odstęp w pikselach między widżetami w pudełku.
set_spacing (spacing) to funkcja, która ustawia liczbę pikseli do umieszczenia między elementami podrzędnymi pudełka.
Metoda add (widget)jest dziedziczona z klasy gtk.Container. Dodaje widżet do kontenera. Tej metody można użyć zamiast metody pack_start ().
Przykład
W przykładzie podanym poniżej okno najwyższego poziomu zawiera pionowe pole (pole obiektu gtk.VBox). Z kolei ma obiekt VBox vb i obiekt HBox hb. W górnym polu etykieta, widżet wprowadzania i przycisk są umieszczone pionowo. W dolnym polu kolejny zestaw etykiet, pozycji i przycisku jest umieszczony pionowo.
Przestrzegaj następującego kodu -
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()
Powyższy kod wygeneruje następujący wynik -