terça-feira, 21 de abril de 2015

4.2. Detalhes de caixas

 

Por causa desta flexibilidade, caixas de embalagem pode ser confuso no início, como um monte de opções, o desempenho não é óbvia. No entanto, existem basicamente cinco estilos. A Figura 4.1, "Embalagem: cinco variações" mostra o resultado da execução do programa packbox.py com um argumento de 1:
Figura 4.1. Embalagem: cinco variações
Embalagem: cinco variações


Cada linha contém uma caixa horizontal (hbox) com vários botões. A chamada para embalar é uma cópia do convite para embalar cada um dos botões na Hbox . Cada botão é embalado em hbox da mesma maneira (com os mesmos argumentos para o método pack_start ()).
Este é um exemplo do método pack_start () de:
   box.pack_start (criança, expandir, fill, padding)
box é a caixa onde o objeto está embalado. O primeiro argumento, child , é o objeto a ser embalado. Por enquanto os objetos são botões, o que seria de embalagem em caixas de botões.
O argumento de expand a pack_start () e pack_end () controla se os controles tem que preencher todo o espaço extra no caixa e, portanto, ele se expande para preencher todo reservado para ela (área TRUE ); ou se encolhe para apenas ajustar os controles ( FALSE ). Definir expandir para FALSE pode justificar aos controles esquerda e direita. Caso contrário, eles vão expandir-se para encher a caixa, e o mesmo efeito pode ser obtido utilizando apenas ou pack_start () ou pack_end ().
O argumento fill de controle se o espaço extra é usado nos próprios objetos ( TRUE ) ou espaço como extra no caixa em torno desses objetos ( FALSE ). Só tem um efeito se o argumento expandir também é TRUE .
Python permite que você defina um método ou função com argumentos padrão e argumentos nomeados. Ao longo deste tutorial que define as funções e os métodos com os padrões e argumentos nomeados vão ver quando eles se aplicam. Por exemplo, o método pack_start é definido como:
   box.pack_start ( child , expand = gtk.TRUE, fill = gtk.TRUE, padding = 0)

   box.pack_end ( child , expand = gtk.TRUE, fill = gtk.TRUE, padding = 0)
child , expand , fill e padding são palavras-chave (argumentos nomeados). Argumentos expand , fill e padding são os padrões (ou "default") mostradas acima. O argumento child deve, necessariamente, ser especificado por não ter um valor padrão.
As funções que nos permitem criar uma nova caixa são:
   hbox = gtk.HBox ( homogeneous = gtk.FALSE, spacing = 0)

   vbox = gtk.VBox ( homogeneous = gtk.FALSE, spacing = 0)
O argumento homogeneous de gtk.HBox () e gtk.VBox () controla se cada caixa é objecto do mesmo tamanho (por exemplo, a mesma largura de um hbox, ou a mesma altura numa vbox). Se for utilizado, as rotinas do pacote funcionar essencialmente como se o argumento expandir estava sempre ligado.
Qual é a diferença entre o spacing (está definido para criar a caixa) e padding (determinado quando os elementos são embalados)? O spacing entre objectos é adicionado, e padding é adicionado a cada um dos lados de um objecto. A Figura 4.2, "Embalagem com espaçamento e Padding" ilustra a diferença; passar um argumento de 2 a packbox.py :
Figura 4.2. Embalagem com espaçamento e Preenchimento
Embalagem com espaçamento e Preenchimento


A Figura 4.3, "empacotado com pack_end ()" ilustra o uso do método pack_end () (passar um argumento de 3 a packbox.py ). O rótulo de "final" é embalado com o método pack_end (). Permanecerá na borda direita da janela quando ela é redimensionada.
Figura 4.3. Embalado com pack_end ()
Embalado com pack_end ()

Nenhum comentário:

Postar um comentário