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.