1 #! / Usr / bin / env python 2 3 # exemplo base.py 4 Pygtk 5 de importação 6 pygtk.require ('2.0') Gtk 7 de importação 8 9 Classes de Base: 10 def __init __ (self): 11 self.window = gtk.Window (gtk.WINDOW_TOPLEVEL) 12 self.window.show () 13 14 def main (self): 15 gtk.main () 16 17 impressão __name__ 18 se __name__ == "__main__": 19 base = Base () 20 base.main ()Você pode executar o programa acima, digitando na linha de comando:
python base.py
Se base.py é feito executável e pode ser encontrado na variável PATH
, você pode executá-lo usando: base.py
Neste caso, a Linha 1 será o interpretador Python rodando base.py . Linhas 5-6 ajudar a diferenciar entre as várias versões do PyGTK que podem ser instalados no computador. Essas linhas indicam que pretende utilizar PyGTK versão 2.0, que abrange todas as versões do PyGTK com 2 número principal. Isso impede que o programa de usar versões anteriores do PyGTK, se estiverem instalados no sistema. Linhas 18-20 verificar se a variável __name__
é "__main__"
, indicando que o programa está sendo executado diretamente de python e não está sendo importado para um interpretador Python. No primeiro caso, o programa cria uma nova instância da classe Base
e salva uma referência a ele na variável de base
. Em seguida, ele chama a função main
() para iniciar o ciclo de processamento de evento de GTK. Uma janela semelhante à Figura 2.1, "Janela PyGTK Simple" deve aparecer na sua tela.
A primeira linha permite que o programa base.py ser chamado a partir de um programa de shell Linux ou Unix assumindo que python está no
PATH
. Esta linha aparece como a primeira linha em todos os programas de exemplo. Linhas 5-7 importar o módulo PyGTK 2 e inicializa o ambiente GTK +. O módulo PyGTK define as interfaces para os python + GTK funções que serão utilizados no programa. Para os que estão familiarizados com o GTK + deve-se notar que a inicialização inclui a chamada função
gtk_init
(). Algumas coisas para nós, como o padrão visual, o mapa de cores, os manipuladores de sinal padrão também são configurados. E verifica os argumentos passados para o programa a partir da linha de comando, à procura de qualquer um: - --gtk-module
- --G Fatais-warnings
- --gtk-debug
- --gtk-no-debug
- --gdk-debug
- --gdk-no-debug
- --display
- --sync
- --name
- --class
Linhas 9-15 definir uma classe python chamado
Base
que define uma instância método de inicialização __init__
(). A função __init__
() cria uma janela de nível superior (linha 11) nível e dirige GTK + para exibi-lo (linha 12). O gtk.Window
é criada na linha 11 com o argumento gtk.WINDOW_TOPLEVEL
indicando que sob uma posição decorações das janelas e gerenciador de janelas desejado.
Ao invés de criar uma janela de tamanho 0x0, uma janela sem filhos tem
um padrão 200x200 modo que você pode manipular o tamanho. Linhas 14-15 definem o método
main
() que chama a função PyGTK main
(), que invoca o principal processamento de eventos GTK + laço para lidar com eventos de mouse e teclado, e eventos de janela. Linhas 18-20 permitir que o programa para iniciar automaticamente se chamado diretamente ou passado como um argumento para o interpretador Python. Nestes casos, o nome do programa está na variável
__name__
será a string "__main__"
eo código em linhas 18-20 será executado. Se o programa é carregado em um interpretador Python em execução, linhas 18-20 não será executado. A linha 19 cria uma instância da classe
Base
chamada base
. Criar um gtk.Window
e resultados da amostra. A linha 20 chama o método
main
() da classe Base
, que inicia o ciclo de processamento de evento de GTK +.
Quando o controle chega a esse ponto, GTK + vai dormir à espera de
eventos X (como teclas ou botões), alarmes e notificações de arquivos de
entrada / saída. No exemplo, no entanto, os eventos são ignorados.
Agora vamos continuar com um programa com um widget (um botão). É a versão PyGTK do clássico programa Olá mundo ( helloworld.py ).
As variáveis e funções definidas no módulo PyGTK são nomeadas da maneira
1 #! / Usr / bin / env python 2 3 # exemplo helloworld.py 4 Pygtk 5 de importação 6 pygtk.require ('2.0') Gtk 7 de importação 8 9 classe HelloWorld: 10 11 # Esta é uma função de retorno. Os argumentos de dados são ignoradas # 12 neste exemplo. Mais informações sobre as chamadas de retorno abaixo. 13 def Olá (self, widget, data = None): 14 print "Olá Mundo" 15 16 def delete_event (self, widget, evento, data = None): 17 # Se FALSE é retornado na manager "delete_event" sinal, 18 # GTK irá emitir o sinal de "destruir". Voltando meios VERDADEIROS # 19 não destruir a janela desejada. 20 # Isso serve para apresentar diálogos como "Tem certeza de que deseja sair? ' 21 # 22 print "evento de exclusão ocorreu" 23 24 # Se o interruptor FALSE TRUE para a janela principal não 25 # destruir com "delete_event". 26 Retorno gtk.FALSE 27 28 # Outra callback 29 def destruir (self, widget, data = None): 30 Gtk.main_quit () 31 32 def __init __ (self): 33 # uma nova janela é criada 34 self.window = gtk.Window (gtk.WINDOW_TOPLEVEL) 35 36 # Quando enviada para uma janela sinal "delete_event" (isto é feito 37 # pelo gerenciador de janelas, geralmente com "close" ou com o ícone 38 # do título da janela), pedimos que você chamar a função delete_event () 39 # definido acima. Os dados passados para o callback são 40 # NULL e é ignorado na função de retorno. 41 self.window.connect (self.delete_event "delete_event") 42 43 # Nós conectamos o evento "destruir" a um manipulador de sinal. 44 # Este evento ocorre quando chamamos gtk_widget_destroy () para a janela, 45 # ou se voltarmos FALSE no "delete_event" callback. 46 self.window.connect ("destruir" self.destroy) 47 48 # Define a largura da borda da janela. Self.window.set_border_width 49 (10) 50 51 # um novo botão chamado "Olá Mundo" Crea. 52 self.button = gtk.Button ("Olá Mundo") 53 54 # Quando o botão recebe o sinal "clicado", o chamado Função # 55 Olá () para passar Nada como o argumento. A função Olá () # 56 encontra-se definido acima. 57 self.button.connect ("clicado", self.hello, None) 58 59 # Isto irá causar a destruição da janela chamando 60 # gtk_widget_destroy (janela) quando "clicado" ocorre. Mais uma vez, 61 # sinal poderia vir aqui ou gerenciador de janelas. 62 self.button.connect_object ("clicado", gtk.Widget.destroy, self.window) 63 64 # Este embala o botão na janela (GTK + container). 65 self.window.add (self.button) 66 # 67 O passo final é para mostrar o controle recém-criada. 68 self.button.show () 69 70 # e a janela 71 self.window.show () 72 73 def main (self): 74 # Todos os aplicativos PyGTK deve ter um gtk.main (). Aqui é deixado 75 # de controlo e se espera que aconteça um evento (tal como um teclado ou rato evento). 76 gtk.main () 77 78 # Se o programa for executado diretamente ou passado como um argumento para o intérprete 79 # para Python, em seguida, uma instância de HelloWorld é criada e exibida 80 se __name__ == "__main__": 81 Olá = HelloWorld () 82 hello.main ()Figura 2.2, "Exemplo do Programa: Olá Mundo" mostra a janela criada por helloworld.py .
As variáveis e funções definidas no módulo PyGTK são nomeadas da maneira
gtk.*
. Por exemplo, o programa helloworld.py utilizado: gtk.FALSE gtk.mainquit () gtk.Window () gtk.Button ()o módulo PyGTK. Nas seções futuras prefixo módulo gtk não é especificado, mas ele vai ser assumida. Naturalmente, os programas de exemplo usar os prefixos de módulo.
Nenhum comentário:
Postar um comentário