Crie o primeiro aplicativo GUI usando Python-Tkinter
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:
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:
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:
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:
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 :
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. |
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva