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