PyGTK - Clase de caja

La clase gtk.Box es una clase abstracta que define la funcionalidad de un contenedor en el que los widgets se colocan en un área rectangular. Los widgets gtk.HBox y gtk.VBox se derivan de él.

Los widgets secundarios en gtk.Hbox están dispuestos horizontalmente en la misma fila. Por otro lado, los widgets secundarios de gtk.VBox están dispuestos verticalmente en la misma columna.

La clase gtk.Box usa el siguiente constructor:

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

La propiedad homogénea se establece en True de forma predeterminada. Como resultado, todos los widgets secundarios reciben la misma asignación.

gtk.Box usa el mecanismo de empaquetado para colocar widgets secundarios en él con referencia a una posición particular, ya sea con referencia al inicio o al final. El método pack_start () coloca los widgets de principio a fin. Por el contrario, el método pack_end () coloca los widgets de principio a fin. Alternativamente, puede usar el método add () que es similar a pack_start ().

Los siguientes métodos están disponibles para gtk.HBox y gtk.VBox:

  • gtk_box_pack_start ()

  • gtk_box_pack_end ()

gtk_box_pack_start ()

Este método agrega child a la caja, empaquetado con referencia al inicio de la caja -

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

Los siguientes son los parámetros:

  • child - Este es el objeto widget que se agregará al cuadro

  • expand- Esto se establece en Verdadero si el niño debe tener espacio adicional en el cuadro. El espacio adicional se divide entre todos los niños.widgets.

  • fill- Si es Verdadero, se asignará espacio adicional al niño. De lo contrario, este parámetro se utiliza como relleno.

  • padding - Este es el espacio en píxeles entre los widgets en el cuadro.

gtk_box_pack_end ()

Esto agrega un niño a la caja, empaquetado con referencia al final de la caja.

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

Los siguientes son los parámetros:

  • child - Este es el objeto widget que se agregará

  • expand- Esto se establece en Verdadero si el niño debe tener espacio adicional en el cuadro. Este espacio adicional se divide entre todos los widgets secundarios.

  • fill - Si es True, se asignará espacio adicional al niño que de otro modo se usaría como relleno.

  • padding - Este es el espacio en píxeles entre los widgets en el cuadro.

set_spacing (spacing) es la función que establece el número de píxeles que se colocarán entre los elementos secundarios del cuadro.

El método add (widget)se hereda de la clase gtk.Container. Agrega widget al contenedor. Este método se puede utilizar en lugar del método pack_start ().

Ejemplo

En el ejemplo que se muestra a continuación, la ventana de nivel superior contiene un cuadro vertical (cuadro de objeto gtk.VBox). A su vez, tiene un objeto VBox vb y un objeto HBox hb. En el cuadro superior, una etiqueta, un widget de entrada y un botón se colocan verticalmente. En el cuadro inferior, otro conjunto de etiqueta, entrada y botón se colocan verticalmente.

Observe el siguiente código:

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

El código anterior producirá el siguiente resultado: