PyGTK - Recipientes
A biblioteca PyGTK fornece diferentes classes de contêiner para controlar a colocação de widgets dentro de uma janela. A maneira mais fácil é usar umfixed container class e coloque um widget dentro dele especificando suas coordenadas absolutas medidas em pixels.
Vamos agora seguir estas etapas -
Step 1 - Declarar um objeto do fixed class
fixed = gtk.Fixed()
Step 2 - Crie um widget de botão e adicione-o ao contêiner fixo usando put()método que precisa das coordenadas xey. Aqui, o botão será colocado na posição (100,100).
btn = gtk.Button("Hello")
fixed.put(btn, 100,100)
Step 3- Você pode colocar vários controles no recipiente fixo. E, adicione-o à janela de nível superior e invoque oshow_all() método
self.add(fixed)
self.show_all()
Este Layout Absoluto, no entanto, não é adequado pelos seguintes motivos -
- A posição do widget não muda, mesmo se a janela for redimensionada.
- A aparência pode não ser uniforme em dispositivos de exibição diferentes com resoluções diferentes.
- A modificação no layout é difícil, pois pode ser necessário redesenhar todo o formulário.
O seguinte é o original window -
O seguinte é o resized window -
A posição do botão não é alterada aqui.
A API PyGTK fornece classes de contêiner para gerenciamento aprimorado de posicionamento de widgets dentro do contêiner. As vantagens dos gerenciadores de layout sobre o posicionamento absoluto são -
- Os widgets dentro da janela são redimensionados automaticamente.
- Garante aparência uniforme em dispositivos de exibição com diferentes resoluções.
- Adicionar ou remover widget dinamicamente é possível sem ter que redesenhar.
gtk.Container atua como a classe base para as seguintes classes -
- gtk.ButtonBox
- gtk.Box
- gtk.Alignment
- gtk.EventBox
- gtk.Table