Tkinter é um pacote Python para a criação de aplicativos GUI. Python tem muitos frameworks GUI, mas Tkinter é o único framework que está embutido na biblioteca padrão do Python. O Tkinter tem vários pontos fortes; é multiplataforma, portanto o mesmo código funciona no Windows, macOS e Linux. O Tkinter é leve e relativamente fácil de usar em comparação com outros frameworks. Isso o torna uma escolha atraente para construir aplicativos GUI em Python, especialmente para aplicativos onde um brilho moderno é desnecessário, e a principal prioridade é construir algo que seja funcional e multiplataforma rapidamente.  

Para entender melhor o Tkinter, criaremos uma GUI simples. 

Começando

1. Importe o pacote tkinter e todos os seus módulos.
2. Crie uma janela raiz. Dê à janela raiz um título (usando título() ) e dimensão (usando geometria() ). Todos os outros widgets estarão dentro da janela raiz. 
3. Use mainloop() para chamar o loop infinito da janela. Se você esquecer de chamar isso, nada aparecerá para o usuário. A janela irá esperar por qualquer interação do usuário até que seja fechada.

Exemplo:

from tkinter import *
 
root = Tk()
 
root.title("Welcome to GeekForGeeks")
root.geometry('350x200')
 
root.mainloop()

 
 

 

 

Resultado: 

 

Janela Raiz

 

 4. Adicionaremos um rótulo usando Label Class e alteraremos sua configuração de texto conforme desejado. A função grid() é um gerenciador de geometria que mantém o rótulo no local desejado dentro da janela. Se nenhum parâmetro for mencionado por padrão, ele o colocará na célula vazia; isto é 0,0, pois é o primeiro local. 
 

 



Exemplo:

 

from tkinter import *
 
root = Tk()
 
root.title("Welcome to GeekForGeeks")
root.geometry('350x200')
 
lbl = Label(root, text = "Are you a Geek?")
lbl.grid()
 
root.mainloop()

 
 

Resultado: 

 

Etiqueta dentro da janela raiz

 

5.  Agora adicione um botão à janela raiz. Alterar as configurações dos botões nos dá muitas opções. Neste exemplo, faremos com que o botão exiba um texto assim que for clicado e também alteraremos a cor do texto dentro do botão. 

 

Exemplo:



 

from tkinter import *
 
root = Tk()
 
root.title("Welcome to GeekForGeeks")
root.geometry('350x200')
 
lbl = Label(root, text = "Are you a Geek?")
lbl.grid()
 
def clicked():
    lbl.configure(text = "I just got clicked")
 
btn = Button(root, text = "Click me" ,
             fg = "red", command=clicked)
btn.grid(column=1, row=0)
 
root.mainloop()

 
 

 

 

Resultado:  

 

Botão adicionado

Depois de clicar em “Clique aqui”

 

6. Usando a classe Entry() , criaremos uma caixa de texto para a entrada do usuário. Para exibir o texto de entrada do usuário, faremos alterações na função clicada() . Podemos obter o texto inserido pelo usuário usando a função get() . Quando o botão depois de inserir o texto, um texto padrão concatenado com o texto do usuário. Além disso, altere a localização da grade do botão para a coluna 2, pois a input() será a coluna 1.



 

Exemplo:

 

from tkinter import *
 
root = Tk()
 
root.title("Welcome to GeekForGeeks")
root.geometry('350x200')
 
lbl = Label(root, text = "Are you a Geek?")
lbl.grid()
 
txt = Entry(root, width=10)
txt.grid(column =1, row =0)
 
 
def clicked():
 
    res = "You wrote" + txt.get()
    lbl.configure(text = res)
 
btn = Button(root, text = "Click me" ,
             fg = "red", command=clicked)
btn.grid(column=2, row=0)
 
root.mainloop()

 
 

 

 

Resultado: 

 

Widget de entrada na coluna 2 linha 0

Exibindo texto de entrada do usuário. 



 

7. Para adicionar uma barra de menu, você pode usar a classe Menu . Primeiro, criamos um menu, depois adicionamos nosso primeiro rótulo e, por fim, atribuímos o menu à nossa janela. Podemos adicionar itens de menu em qualquer menu usando add_cascade().

 

Exemplo:

 

 

 

from tkinter import *
 
root = Tk()
 
root.title("Welcome to GeekForGeeks")
root.geometry('350x200')
 
menu = Menu(root)
item = Menu(menu)
item.add_command(label='New')
menu.add_cascade(label='File', menu=item)
root.config(menu=menu)
 
lbl = Label(root, text = "Are you a Geek?")
lbl.grid()
 
txt = Entry(root, width=10)
txt.grid(column =1, row =0)
 
 
def clicked():
 
    res = "You wrote" + txt.get()
    lbl.configure(text = res)
 
btn = Button(root, text = "Click me" ,
             fg = "red", command=clicked)
btn.grid(column=2, row=0)
 
root.mainloop()

 
 

Resultado : 



 

Barra de menu

 

Esta GUI simples cobre os fundamentos do pacote Tkinter. Da mesma forma, você pode adicionar mais widgets e alterar suas configurações conforme desejado. 

 

Widgets

 

O Tkint er fornece 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.  A lista de widgets comumente usados é mencionada abaixo -

 

S Não . Ferramenta Descrição
1 Rótulo O widget Label é usado para fornecer uma legenda de linha única para outros widgets. Também pode conter imagens.
2 Botão O widget de botão é usado para exibir botões em seu aplicativo.
3 Entrada O widget de entrada é usado para exibir um campo de texto de linha única para aceitar valores de um usuário.
4 Cardápio O widget Menu é usado para fornecer vários comandos a um usuário. Esses comandos estão contidos no Menubutton.
5 Tela de pintura O widget Canvas é usado para desenhar formas, como linhas, ovais, polígonos e retângulos, em seu aplicativo.
6 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.
7 Quadro, Armação O widget Frame é usado como um widget de contêiner para organizar outros widgets.
8 Listbox O widget Listbox é usado para fornecer uma lista de opções para um usuário.
9 Botão de menu O widget Menubutton é usado para exibir menus em seu aplicativo.
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 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.
17 tkMessageBox Este módulo é usado para exibir caixas de mensagens em seus aplicativos.
18 Spinbox O widget Spinbox é uma variante do widget Tkinter Entry padrão, que pode ser usado para selecionar um número fixo de valores.
19 PanedWindow Um PanedWindow é um widget de contêiner que pode conter qualquer número de painéis, organizados horizontalmente ou verticalmente.

Gestão Geométrica

 

Todos os widgets Tkinter têm acesso a 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. A descrição deles é mencionada abaixo -

 

S No. Widegt Descrição
1 pacote() Este gerenciador de geometria organiza widgets em blocos antes de colocá-los no widget pai.
2 rede() Este gerenciador de geometria organiza widgets em uma estrutura semelhante a uma tabela no widget pai.
3 Lugar, colocar() Este gerenciador de geometria organiza widgets, colocando-os em uma posição específica no widget pai.