Python 3 - Programação GUI (Tkinter)
Python oferece várias opções para o desenvolvimento de interfaces gráficas com o usuário (GUIs). Os recursos mais importantes estão listados abaixo.
Tkinter- Tkinter é a interface Python para o kit de ferramentas Tk GUI fornecido com Python. Veríamos essa opção neste capítulo.
wxPython- Esta é uma interface Python de código aberto para wxWidgets GUI toolkit. Você pode encontrar um tutorial completo sobre WxPython aqui .
PyQt−Esta é também uma interface Python para uma popular biblioteca Qt de plataforma cruzada GUI. O TutorialsPoint tem um tutorial muito bom sobre o PyQt aqui .
JPython - JPython é uma porta Python para Java, que dá aos scripts Python acesso contínuo às bibliotecas de classes Java na máquina local http://www.jython.org.
Existem muitas outras interfaces disponíveis, que você pode encontrar na rede.
Programação Tkinter
Tkinter é a biblioteca GUI padrão para Python. O Python, quando combinado com o Tkinter, fornece uma maneira rápida e fácil de criar aplicativos GUI. O Tkinter fornece uma interface orientada a objetos poderosa para o kit de ferramentas Tk GUI.
Criar um aplicativo GUI usando o Tkinter é uma tarefa fácil. Tudo que você precisa fazer é executar as seguintes etapas -
Importe o módulo Tkinter .
Crie a janela principal do aplicativo GUI.
Adicione um ou mais dos widgets mencionados acima ao aplicativo GUI.
Entre no loop de evento principal para agir em relação a cada evento disparado pelo usuário.
Exemplo
#!/usr/bin/python3
import tkinter # note that module name has changed from Tkinter in Python 2 to tkinter in Python 3
top = tkinter.Tk()
# Code to add widgets will go here...
top.mainloop()
Isso criaria a seguinte janela -
Widgets Tkinter
O Tkinter oferece vários controles, como botões, rótulos e caixas de texto usados em um aplicativo GUI. Esses controles são comumente chamados de widgets.
Existem atualmente 15 tipos de widgets no Tkinter. Apresentamos esses widgets, bem como uma breve descrição na tabela a seguir -
Sr. Não. | Operador e descrição |
---|---|
1 | Botão O widget de botão é usado para exibir os botões em seu aplicativo. |
2 | Tela de pintura O widget Canvas é usado para desenhar formas, como linhas, ovais, polígonos e retângulos, em seu aplicativo. |
3 | Botão de verificação O widget Checkbutton é usado para exibir várias opções como caixas de seleção. O usuário pode selecionar várias opções ao mesmo tempo. |
4 | Entrada O widget de entrada é usado para exibir um campo de texto de linha única para aceitar valores de um usuário. |
5 | Quadro, Armação O widget Frame é usado como um widget de contêiner para organizar outros widgets. |
6 | Rótulo O widget Label é usado para fornecer uma legenda de linha única para outros widgets. Também pode conter imagens. |
7 | Listbox O widget Listbox é usado para fornecer uma lista de opções para um usuário. |
8 | Botão de menu O widget Menubutton é usado para exibir menus em seu aplicativo. |
9 | Cardápio O widget Menu é usado para fornecer vários comandos a um usuário. Esses comandos estão contidos no Menubutton. |
10 | mensagem O widget Mensagem é usado para exibir campos de texto de várias linhas para aceitar valores de um usuário. |
11 | Botao de radio O widget Radiobutton é usado para exibir várias opções como botões de rádio. O usuário pode selecionar apenas uma opção por vez. |
12 | Escala O widget Escala é usado para fornecer um widget de controle deslizante. |
13 | Barra de rolagem O widget Barra de rolagem é usado para adicionar capacidade de rolagem a vários widgets, como caixas de listagem. |
14 | Texto O widget Texto é usado para exibir texto em várias linhas. |
15 | Nível Superior O widget de nível superior é usado para fornecer um contêiner de janela separado. |
16 | Spinbox O widget Spinbox é uma variante do widget Tkinter Entry padrão, que pode ser usado para selecionar um número fixo de valores. |
17 | PanedWindow Um PanedWindow é um widget de contêiner que pode conter qualquer número de painéis, organizados horizontal ou verticalmente. |
18 | LabelFrame Um labelframe é um widget de contêiner simples. Seu objetivo principal é atuar como um espaçador ou contêiner para layouts de janela complexos. |
19 | tkMessageBox Este módulo é usado para exibir caixas de mensagens em seus aplicativos. |
Atributos padrão
Vejamos como alguns de seus atributos comuns, como tamanhos, cores e fontes são especificados.
Gestão Geométrica
Todos os widgets Tkinter têm acesso aos métodos específicos de gerenciamento de geometria, que têm o propósito de organizar os widgets em toda a área de widgets pai. O Tkinter expõe as seguintes classes de gerenciador de geometria: pacote, grade e local.
Método pack () - Este gerenciador de geometria organiza widgets em blocos antes de colocá-los no widget pai.
O Método grid () - Este gerenciador de geometria organiza widgets em uma estrutura semelhante a uma tabela no widget pai.
Método place () - Este gerenciador de geometria organiza widgets colocando-os em uma posição específica no widget pai.