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 -