Tkinter é um kit de ferramentas de interface gráfica do usuário (GUI) que você deve experimentar se quiser explorar o poder do Python na criação de aplicativos de desktop.

Aqui, damos uma olhada nos fundamentos do módulo Tkinter GUI.

Configuração do Tkinter

Normalmente, você não precisa instalar tkinter separadamente se você instalou uma versão posterior do Python, começando com Python 3. A biblioteca pode não funcionar com versões antigas do Python. Este é um problema comum para usuários de Mac e Linux, já que esses sistemas operacionais geralmente vêm com versões mais antigas do Python por padrão.

Geralmente, para usar o tkinter módulo, certifique-se de baixar e instalar a versão compatível mais recente do Python em seu PC a partir do oficial python.org local na rede Internet.

Se você estiver no Mac, como alternativa, você pode baixar a versão mais recente do ActiveTcl, um tkinter compilador de ActiveState.

Como usar o Tkinter

Tkinter depende de seu TK aula. E encerra todos os eventos dentro da GUI em um

laço principal. Então, o laço principal invólucro faz o seu tkinter executável de código.

Para começar com tkinter:

de tkinter import Tk
Tk (). Mainloop ()

Executar o código acima acelera um vazio tkinter quadro.

Os recursos de personalização do Tkinter, no entanto, estão em seus widgets embutidos.

Para usar esses widgets, você pode importá-los de tkinter substituindo de tkinter import Tk com:

da importação do tkinter *
t = Tk ()
t.mainloop ()

Você também pode ajustar o tamanho da janela com o geometria função e, em seguida, especifique um título usando o título widget de tkinter:

t = Tk ()
t.geometria ("600x600")
t.title ("Tutorial do Tk")
t.mainloop ()

O Tkinter permite que você escreva textos simples diretamente para a GUI usando o Rótulo ferramenta:

t = Tk ()
Label (t, text = "MUO Tkinter tutorial"). Grid ()
t.mainloop ()

O rede() método, no entanto, é uma alternativa ao pacote() método. Ele fixa seus widgets à GUI, tornando-os visíveis.

Você também pode especificar uma fonte para o seu Rótulo texto:

t = Tk ()
Label (t, text = "MUO Tkinter tutorial", font = (60)). Grid ()
t.mainloop ()

Os botões são alguns dos widgets mais usados ​​em tkinter. E você pode adicionar esses botões clicáveis ​​à sua GUI usando os vários widgets de botão integrados.

Veja como adicionar um botão primário à sua GUI usando o Botão ferramenta:

t = Tk ()
Botão (t, texto = "clicável", bg = "preto", fg = "branco"). Grade ()
t.mainloop ()

O bg e fg palavras-chave descrevem a cor de fundo do botão e a cor do texto dentro dele, respectivamente.

Você também pode ajustar a dimensão do botão incluindo o altura e largura parâmetros:

t = Tk ()
Botão (t, texto = "clicável", bg = "preto", fg = "branco", altura = "2", largura = "10"). Grade ()
t.mainloop ()

Aqui está a saída para isso:

E se você quiser tornar o botão mais atraente visualmente, você pode incluir um alívio palavra-chave e, em seguida, ajuste a largura da borda:

t = Tk ()
Botão (t, texto = "clicável", bg = "azul", fg = "branco",
altura = 2, largura = 10, relevo = ELEVADO, largura da borda = 6) .grid ()
t.mainloop ()

E isso se parece com isto:

Substituir CRIADO com APARTAMENTO para ver como isso acontece.

Você pode adicionar quantos botões desejar. Mas tome cuidado para evitar a sobreposição de conteúdo.

Para evitar a sobreposição, você pode especificar a posição da linha e da coluna para cada botão:

t = Tk ()
Botão (t, texto = 1, bg = "preto", fg = "branco"). Grade (linha = 1, coluna = 1)
Botão (t, texto = 2, bg = "preto", fg = "branco"). Grade (linha = 2, coluna = 1)
Botão (t, texto = 3, bg = "preto", fg = "branco"). Grade (linha = 3, coluna = 1)
Botão (t, texto = 4, bg = "preto", fg = "branco"). Grade (linha = 4, coluna = 1)
t.mainloop ()

Um opcional comando palavra-chave, no entanto, adiciona eventos ao Botão ferramenta. Em essência, ele ancora uma função opcional que trata de certos eventos quando você clica em um botão.

O código abaixo, por exemplo, multiplica o valor de cada botão por 6 quando você clica nele. E é baseado em uma função predefinida:

def buttonpress (r):
r = 6 * r
Rótulo (t, texto = r, fonte = (60)). Grade (linha = 5, coluna = 2)
t = Tk ()
Botão (t, texto = 1, bg = "preto", fg = "branco", largura = 10, altura = 2,
comando = lambda: buttonpress (1)). grade (linha = 1, coluna = 1, pady = 6)
Botão (t, texto = 2, bg = "preto", fg = "branco", largura = 10,
command = lambda: buttonpress (2)). grade (linha = 2, coluna = 1, pady = 6)
Botão (t, texto = 3, bg = "preto", fg = "branco", largura = 10,
comando = lambda: buttonpress (3)). grade (linha = 3, coluna = 1, pady = 6)
Botão (t, texto = 4, bg = "preto", fg = "branco", largura = 10,
comando = lambda: buttonpress (4)). grade (linha = 4, coluna = 1, pady = 6)
t.mainloop ()

No código acima, botão pressionado lida com o evento de multiplicação. O Botão widget, em seguida, aponta para esse manipulador de eventos usando um anônimo lambda função.

E se você está preocupado com o pady palavra-chave, ele separa distintamente cada botão na linha. Substituindo isso por padx separa os botões na coluna. E você pode usar as duas palavras-chave simultaneamente para separar os botões em ambos os eixos conforme desejar.

Dito isso, você não quer reinventar a roda para cada botão, como fez no código anterior. Isso diminui o tempo de execução, além de tornar seu código difícil de ler e restringir.

Mas você pode use um loop for para evitar essa repetição.

Portanto, aqui está uma versão mais curta e melhor do código acima:

def buttonpress (r):
r = 6 * r
Rótulo (t, texto = r, fonte = (60)). Grade (linha = 5, coluna = 2)
t = Tk ()
a = [1, 4, 6, 7]
para eu em um:
j = lambda y = i: buttonpress (y)
Botão (t, texto = i, bg = "preto", fg = "branco", largura = 10, altura = 2,
comando = j) .grid (linha = i, coluna = 1, pady = 6)
t.mainloop ()

Botões de menu e botões de verificação

Vamos explorar ainda mais o poder de para loop para adicionar botões de menu à sua GUI:

da importação do tkinter *
t = Tk ()
botões = ["Arquivos", "Painel", "Menu", "Configurações", "Ajuda"]
m = 0
para i no intervalo (len (botões)):
# Obtenha cada texto na matriz de botões usando um índice de lista à medida que m aumenta.
# Em seguida, deixe a coluna aumentar em 1 ao longo do comprimento da matriz:

Botão de menu (t, texto = botões [m], bg = "azul", fg = "branco"). Grade (linha = 5, coluna = i)
m + = 1
t.mainloop ()

Adicionar botões de verificação à sua GUI também é muito fácil:

t = Tk ()
Botão de verificação (t, texto = "Selecionar opção"). Grade ()
t.mainloop ()

Sinta-se à vontade para multiplicar esse botão de verificação usando o para loop, como fizemos anteriormente.

O Cardápio widget permite criar menus suspensos clicáveis ​​em tkinter.

Como dito anteriormente, tkinter oferece muitas opções de widget. E você usará alguns deles ao projetar seu menu suspenso.

Aqui estão algumas das opções de widgets comuns que você encontrará ao fazer um menu suspenso:

  • add_cascade: Ele exibe um rótulo de menu e o coloca no lugar ao qual pertence.
  • add_separator: Ele demarca submenus e os agrupa em submenus superiores e inferiores.
  • add_command: É aqui que você dá um nome ao seu submenu. Em última análise, ele aceita um argumento de comando onde você pode especificar um manipulador de eventos.

Aqui está um exemplo suspenso que usa essas três opções:

da importação do tkinter *
t = Tk ()
fileOptions = ["Novo", "abrir", "Salvar", "Salvar como"]
fileOptionsAfterseparator = ["Importar", "Exportar", "Sair"]
viewOptions = ["Transformar", "Editar", "Criar"]
menuBar = Menu (t)
arquivo = Menu (menuBar, tearoff = 0)
para i em fileOptions:
file.add_command (label = i, command = None)
file.add_separator ()
para i em fileOptionsAfterseparator:
file.add_command (label = i, command = None)
menuBar.add_cascade (label = "Arquivo", menu = arquivo)
Exibir = Menu (menuBar, tearoff = 0)
para i em viewOptions:
View.add_command (label = i, command = None)
menuBar.add_cascade (label = "Exibir", menu = Exibir)
t.config (menu = menuBar)
t.mainloop ()

Veja como fica:

Menu de opções do Tkinter

Um Menu de opções, ao contrário do Cardápio lista suspensa, muda seu rótulo para uma opção selecionada.

Embora você possa especificar um valor de rótulo padrão para um menu de opções, ele não tem rótulo por padrão.

Relacionado: Idéias de projetos Python adequadas para iniciantes

Veja como criar um menu de opções em tkinter:

t = Tk ()
Omenu = StringVar () # definir o tipo de variável das opções
Omenu.set ("MUO") #especifique um valor padrão para o ícone do menu
OptionMenu (t, Omenu, "MUO", "Amazon", "Tutorial"). Grid ()
t.mainloop ()

Crie um aplicativo de área de trabalho reutilizável com o Tkinter

O Tkinter oferece uma variedade de recursos que ajudam você a criar aplicativos de desktop GUI interativos. Embora possa não ter muitos recursos de embelezamento flexíveis como alguns outros módulos Python GUI, ainda é uma ferramenta útil que vale a pena explorar. E embora os exemplos aqui mostrem apenas alguns dos conceitos básicos, tkinter oferece recursos mais avançados que você pode experimentar.

Dito isso, você pode construir uma calculadora de desktop GUI, fazer um mini editor de texto ou até mesmo criar um aplicativo de desktop GUI para gerenciar seus inventários. Se você deseja abrir suas asas e se tornar um especialista em GUI de desktop, você pode até verificar outros módulos de GUI do Python.

E-mail
GUI? O que é uma interface gráfica do usuário?

Você usa uma GUI? Provavelmente você tem, porque você os usa todos os dias.

Leia a seguir

Tópicos relacionados
  • Programação
  • Pitão
Sobre o autor
Idowu Omisola (88 artigos publicados)

Idowu é apaixonado por qualquer tecnologia inteligente e produtividade. Em seu tempo livre, ele brinca com codificação e muda para o tabuleiro de xadrez quando está entediado, mas também adora quebrar a rotina de vez em quando. Sua paixão por mostrar às pessoas o caminho da tecnologia moderna o motiva a escrever mais.

Mais de Idowu Omisola

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever