PyGTK - Classe de Alinhamento
Este widget é útil para controlar o alinhamento e o tamanho de seus widgets filhos. Ele tem quatro propriedades chamadas xalign, yalign, xscale e yscale. As propriedades de escala especificam quanto espaço livre será usado pelos widgets filhos. As propriedades de alinhamento são usadas para colocar o widget filho dentro da área disponível.
Todas as quatro propriedades assumem um valor flutuante entre 0 e 1,0. Se as propriedades xscale e yscale estiverem configuradas para 0, significa que o widget não absorve nenhum espaço livre e, se configurada para 1, o widget absorve o espaço livre máximo horizontal ou verticalmente, respectivamente.
As propriedades xalign e yalign se definidas como 0, significa que não haverá espaço livre à esquerda ou acima do widget. Se definido como 1, haverá espaço livre máximo à esquerda ou acima do widget.
A classe gtk.alignment tem o seguinte construtor -
gtk.alignment(xalign = 0.0, yalign = 0.0, xscale = 0.0, yscale = 0.0)
Onde,
xalign - É a fração do espaço livre horizontal à esquerda do widget filho.
yalign - É a fração do espaço livre vertical acima do widget filho.
xscale - Is é a fração do espaço livre horizontal que o widget filho absorve.
yscale - Is é a fração do espaço livre vertical que o widget filho absorve.
Exemplo
O código a seguir demonstra o uso do widget gtk.alignment. Uma Vbox na janela de nível superior tem uma Vbox superior e uma Hbox inferior nela. Na caixa vertical superior, um rótulo e um widget de entrada são colocados de forma que, à esquerda, 50% do espaço seja mantido livre e mais de 25% desse espaço seja ocupado atribuindo propriedades de 0,5 xalign e 0,25 a yalign.
No HBox inferior, todo o espaço livre disponível está no lado esquerdo. Isso é obtido atribuindo 1 à propriedade xalign. Portanto, dois botões na caixa horizontal aparecem alinhados à direita.
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Alignment demo")
self.set_size_request(400,200)
self.set_position(gtk.WIN_POS_CENTER)
vbox = gtk.VBox(False, 5)
vb = gtk.VBox()
hbox = gtk.HBox(True, 3)
valign = gtk.Alignment(0.5,0.25, 0, 0)
lbl = gtk.Label("Name of student")
vb.pack_start(lbl, True, True, 10)
text = gtk.Entry()
vb.pack_start(text, True, True, 10)
valign.add(vb)
vbox.pack_start(valign)
ok = gtk.Button("OK")
ok.set_size_request(70, 30)
close = gtk.Button("Close")
hbox.add(ok)
hbox.add(close)
halign = gtk.Alignment(1, 0, 0, 0)
halign.add(hbox)
vbox.pack_start(halign, False, False, 3)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
PyApp()
gtk.main()
O código acima produz a seguinte saída -