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 -