PyGTK - Classe Box

A classe gtk.Box é uma classe abstrata que define a funcionalidade de um contêiner no qual os widgets são colocados em uma área retangular. Os widgets gtk.HBox e gtk.VBox são derivados dele.

Os widgets filhos em gtk.Hbox são organizados horizontalmente na mesma linha. Por outro lado, os widgets filhos de gtk.VBox são organizados verticalmente na mesma coluna.

A classe gtk.Box usa o seguinte construtor -

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

A propriedade homogênea é definida como True por padrão. Como resultado, todos os widgets filhos recebem alocação igual.

O gtk.Box usa o mecanismo de empacotamento para colocar widgets filho nele com referência a uma posição particular, seja com referência ao início ou ao final. O método pack_start () coloca os widgets do início ao fim. Ao contrário, o método pack_end () coloca os widgets do início ao fim. Alternativamente, você pode usar o método add () que é semelhante a pack_start ().

Os métodos a seguir estão disponíveis para gtk.HBox e também gtk.VBox -

  • gtk_box_pack_start ()

  • gtk_box_pack_end ()

gtk_box_pack_start ()

Este método adiciona child para a caixa, embalado com referência ao início da caixa -

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

A seguir estão os parâmetros -

  • child - Este é o objeto widget a ser adicionado à caixa

  • expand- Definido como Verdadeiro se a criança precisar de espaço extra na caixa. O espaço extra é dividido entre todas as criançaswidgets.

  • fill- Se True, espaço extra será alocado para a criança. Caso contrário, este parâmetro é usado como preenchimento.

  • padding - Este é o espaço em pixels entre os widgets na caixa.

gtk_box_pack_end ()

Isso adiciona criança à caixa, embalada com referência ao final da caixa.

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

A seguir estão os parâmetros -

  • child - Este é o objeto widget a ser adicionado

  • expand- Definido como Verdadeiro se a criança precisar de espaço extra na caixa. Este espaço extra é dividido entre todos os widgets filhos.

  • fill - Se True, espaço extra será alocado para a criança, de outra forma usado como preenchimento.

  • padding - Este é o espaço em pixels entre os widgets na caixa.

set_spacing (spacing) é a função que define o número de pixels a serem colocados entre os filhos da caixa.

O método add (widget)é herdado da classe gtk.Container. Ele adiciona widget ao contêiner. Este método pode ser usado no lugar do método pack_start ().

Exemplo

No exemplo abaixo, a janela de nível superior contém uma caixa vertical (caixa do objeto gtk.VBox). Por sua vez, tem um objeto VBox vb e um objeto HBox hb. Na caixa superior, um rótulo, um widget de entrada e um botão são colocados verticalmente. Na caixa inferior, outro conjunto de etiqueta, entrada e botão são colocados verticalmente.

Observe o seguinte 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()

O código acima produzirá a seguinte saída -