terça-feira, 2 de outubro de 2012

Python - Interface Gráfica com Tkinter

Olá pessoal, nesse post iremos aprender um pouco sobre a biblioteca Tkinter.

Tkinter é uma biblioteca padrão que acompanha a distribuição oficial do interpretador Python. Vamos fazer alguns exemplos básicos para mostrar o funcionamento dessa biblioteca.

 No primeiro exemplo iremos mostrar uma simples janela. Veja o código abaixo:


Linha 4: importação do módulo tkinter.

Linha 6: declaração da classe Application.

Linha 10: a classe Tk é instanciada.

Linha 11: root é instância da classe Tk, por isso ele é passado como argumento do construtor da GUI.

Linha 12: chamada do método mainloop() que é o event loop da aplicação.

Execução do código:


Agora vamos ver outro exemplo que utiliza contêineres que são onde os widgets são colocados:


Linha 8: contêiner instanciado informando o elemento pai.

Linha 9: aqui é informado o gerenciador de geometria. Existem três gerenciadores de geometria (grid, pack e place), iremos utilizar o pack por ser o mais simples.

Linha 10: exibe uma mensagem na tela utilizando o widget Label. O primeiro atributo é o contêiner pai e o segundo é o texto que será exibido.

Linha 11: utiliza-se o pack para que o Label seja exibido na tela.

Execução do código:


A tela diminuiu de tamanho porque agora temos widgets. A tela terá o tamanho necessário para exibir os widgets na tela.

Agora iremos adicionar um botão no contêiner. Veja o exemplo:


Linha 12: contêiner sendo instanciado.

Linha 13: informo o texto do botão.

Linha 14: informo a fonte e o tamanho.

Linha 15: configuro a largura do botão.

Linha 16: passo um comando ao botão.

Execução do código:


No próximo exemplo iremos manipular eventos. O usuário clicará no botão e o texto do botão será alterado. Veja o código:


Linha 16: aqui é feito o binding no botão para fazer a conexão do evento ao event handler. Button-1 representa o clique do botão esquerdo do mouse. O método setText é o event handler que é uma ação executada em resposta a um evento.

Linha 19: aqui temos o event handler para modificar o texto do botão quando ele for clicado.

Outra forma de associar esse evento a um event handler é modificando as linhas 16 e 19, veja como ficaria:


Veja que apenas as linhas 16 e 19 foram alteradas. A linha 19 apenas foi retirado o event. Na linha 16 foi utilizado o command binding para fazer a associação. Fazendo dessa forma não é necessário passar o evento que será relacionado ao event handler.

Agora iremos receber dados do usuário utilizando o widget Entry. Iremos fazer um programinha que pede para entrar com o endereço do site, caso você digite www.geeksbr.com, então o programa mostrará uma mensagem de boas vindas, caso contrário, mostrará uma mensagem para você tentar novamente. Veja a execução do programa:



O código é um pouco maior, então disponibilizarei o link para você fazer o download. O código está comentado. 

Clique aqui para fazer o download do código


Nenhum comentário: