PyGTK - Box Class

La classe gtk.Box è una classe astratta che definisce la funzionalità di un contenitore in cui i widget sono posti in un'area rettangolare. I widget gtk.HBox e gtk.VBox sono derivati ​​da esso.

I widget figlio in gtk.Hbox sono disposti orizzontalmente nella stessa riga. D'altra parte, i widget figlio di gtk.VBox sono disposti verticalmente nella stessa colonna.

La classe gtk.Box utilizza il seguente costruttore:

gtk.Box(homogenous = True, spacing = 0)

La proprietà omogenea è impostata su True per impostazione predefinita. Di conseguenza, a tutti i widget figlio viene assegnata la stessa allocazione.

gtk.Box utilizza il meccanismo di impacchettamento per posizionare widget figlio in esso con riferimento a una posizione particolare, con riferimento all'inizio o alla fine. Il metodo pack_start () posiziona i widget dall'inizio alla fine. Al contrario, il metodo pack_end () inserisce i widget dall'inizio alla fine. In alternativa, puoi usare il metodo add () che è simile a pack_start ().

I seguenti metodi sono disponibili per gtk.HBox e gtk.VBox:

  • gtk_box_pack_start ()

  • gtk_box_pack_end ()

gtk_box_pack_start ()

Questo metodo aggiunge child alla scatola, imballata con riferimento all'inizio della scatola -

pack_start(child, expand = True, fill = True, padding = 0)

I seguenti sono i parametri:

  • child - Questo è l'oggetto widget da aggiungere a box

  • expand- Questo è impostato su True se al bambino deve essere assegnato spazio aggiuntivo nella casella. Lo spazio extra è diviso tra tutti i bambiniwidgets.

  • fill- Se True, lo spazio extra verrà assegnato al bambino. In caso contrario, questo parametro viene utilizzato come riempimento.

  • padding - Questo è lo spazio in pixel tra i widget nella casella.

gtk_box_pack_end ()

Questo aggiunge bambino alla scatola, imballata con riferimento alla fine della scatola.

pack_end (child, expand = True, fill = True, padding = 0)

I seguenti sono i parametri:

  • child - Questo è l'oggetto widget da aggiungere

  • expand- Questo è impostato su True se al bambino deve essere assegnato spazio aggiuntivo nella casella. Questo spazio extra è diviso tra tutti i widget figlio.

  • fill - Se True, lo spazio extra verrà assegnato al bambino altrimenti utilizzato come riempimento.

  • padding - Questo è lo spazio in pixel tra i widget nella casella.

set_spacing (spacing) è la funzione che imposta il numero di pixel da posizionare tra i figli del riquadro.

Il metodo add (widget)è ereditato dalla classe gtk.Container. Aggiunge widget al contenitore. Questo metodo può essere utilizzato al posto del metodo pack_start ().

Esempio

Nell'esempio riportato di seguito, la finestra di primo livello contiene un box verticale (box oggetto gtk.VBox). A sua volta ha un oggetto VBox vb e un oggetto HBox hb. Nella casella superiore, un'etichetta, un widget di immissione e un pulsante sono posizionati verticalmente. Nella casella inferiore, un altro set di etichette, voci e pulsanti sono posizionati verticalmente.

Rispettare il codice seguente:

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()

Il codice precedente produrrà il seguente output: