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