terça-feira, 21 de abril de 2015

4.5. Tabela Exemplo de embalagem

 

O programa de amostra table.py cria uma janela com três botões em uma tabela 2x2. Os dois primeiros botões serão colocados na linha de cima. Um terceiro, botão de parar de fumar, é colocado na linha de fundo e ocupa duas colunas. A Figura 4.4, "embalagem utilizando uma tabela" ilustra a janela resultante:
Figura 4.4. Embalagem utilizando uma Tabela
Embalagem utilizando uma Tabela


Aqui está o código fonte:
    1 #!/usr/bin/env python
    2 
    3 # ejemplo table.py
    4 
    5 import pygtk
    6 pygtk.require('2.0')
    7 import gtk
    8 
    9 class Table:
   10     # Nuestra retrollamada.
   11     # Los datos que se pasan a este método se imprimen por la salida estándar.
   12     def callback(self, widget, data=None):
   13         print "Hello again - %s was pressed" % data
   14 
   15     # Esta retrollamada sale del programa.
   16     def delete_event(self, widget, event, data=None):
   17         gtk.main_quit()
   18         return gtk.FALSE
   19 
   20     def __init__(self):
   21         # Creamos una ventana nueva
   22         self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
   23 
   24         # Establecemos el título de la ventana
   25         self.window.set_title("Table")
   26 
   27         # Fijamos un manejador para delete_event que sale de GTK+
   28         # inmediatamente.
   29         self.window.connect("delete_event", self.delete_event)
   30 
   31         # Fijamos el grosor de los bordes.
   32         self.window.set_border_width(20)
   33 
   34         # Creamos una tabla 2x2.
   35         table = gtk.Table(2, 2, gtk.TRUE)
   36 
   37         # Ponemos la tabla en la ventana principal
   38         self.window.add(table)
   39 
   40         # Creamos el primer botón
   41         button = gtk.Button("button 1")
   42 
   43         # Cuando se pulsa el botón llamamos al método "callback"
   44         # con una indicación a "button 1" como argumento.
   45         button.connect("clicked", self.callback, "button 1")
   46 
   47 
   48         # Insertamos el botón 1 en el cuadrante superior izquierdo de la tabla.
   49         table.attach(button, 0, 1, 0, 1)
   50 
   51         button.show()
   52 
   53         # Creamos el segundo botón.
   54 
   55         button = gtk.Button("button 2")
   56 
   57         # Cuando se pulsa el botón llamamos al método "callback"
   58         # con una indicación a "button 2" como argumento.
   59         button.connect("clicked", self.callback, "button 2")
   60         # Insertamos el botón 2 en el cuadrante superior derecho de la tabla.
   61         table.attach(button, 1, 2, 0, 1)
   62 
   63         button.show()
   64 
   65         # Creamos el botón de salida "Quit"
   66         button = gtk.Button("Quit")
   67 
   68         # Cuando se pulsa el botón llamamos a la función main_quit y
   69         # el programa se termina
   70         button.connect("clicked", lambda w: gtk.main_quit())
   71 
   72         # Insertamos el botón de salida en los dos cuadrantes inferiores de la tabla
   73         table.attach(button, 0, 2, 1, 2)
   74 
   75         button.show()
   76 
   77         table.show()
   78         self.window.show()
   79 
   80 def main():
   81     gtk.main()
   82     return 0       
   83 
   84 if __name__ == "__main__":
   85     Table()
   86     main()
 
Classe Table é definido nas linhas 9-78. Linhas 12-13 definir o método callback () chamado quando você "clicar" em dois dos botões. O retorno de chamada apenas imprime uma mensagem no console, indicando qual botão foi pressionado usando dados passados ​​para ele.
Linhas 16-18 definem o método delete_event () é chamado quando o gerenciador de janelas pede a janela é removido.
Linhas 20-78 definir o construtor da classe Table __init__ (). Cria uma janela (linha 22), coloca o título (linha 25), liga o callback delete_event () a (linha 29) sinal "delete_event" e coloca o (32 linhas) borda largura. Um é criado gtk.Table na linha 35 e adicionado à janela na linha 38.
Os dois primeiros botões são criados nas linhas 41 e 55, os seus sinais "clicado" conectar o método callback () nas linhas 45 e 59; e adicionada à tabela na primeira linha em linhas 49 e 61. Linhas 66-72 criar o botão "Sair", conecte o seu "clicado" sinal para a função mainquit () e adicionados à tabela ocupando a linha bottom inteiro.

Nenhum comentário:

Postar um comentário