Formulário no Python - biblioteca TKinter (front-end)
A biblioteca TKinter do Python é utilizada para criar formulários e quanquer interface gráfica de usuário (GUI). Ela possui vários componentes. Aqui vamos demonstrar alguns desses.
A primeira coisa a fazer é importar a biblioteca:
python -m tkinter
Vamos criar um código simples para entrada de dados (lembrando que o que estiver ao lado do "#" é comentário):
from tkinter import *
formulario = Tk()
formulario.geometry('900x450') # largura e altura da janela (formulário)
formulario.title("Formulário em Python") # título do formulário
# Inclusão de um texto no formulário. A fonte do texto (font= ('Arial',12)) é opcional:
Label(formulario, text='Digite seu nome:', font= ('Arial',12)).place(x=150, y=168) # coordenadas x e y de posicionamento do texto (Lable)
# Caixa de entrada de texto para o usuário digitar
entrada = Entry(formulario, font=("Arial", 12)) # Entry cria um campo onde o usuário digita texto que será memorizado na variável "entrada".
entrada.place(x=275, y=170) # posicionamento da caixa de entrada
Ao rodar este código você já verá o formulário abaixo:
Porém ainda o código não faz nada. Vamos incluir um botão e uma função para ele:
def funcao_saudar():
nome = entrada.get()
saudacao = f'Bom dia {nome}'
print(saudacao)
Button(formulario, text='OK', command = funcao_saudar).place(x=480, y=168)
Agora, ao rodar o código, você pode digitar seu nome e clicar em OK e o terminal mostrará a saudação "Bom dia Seunome"
Vamos incluir agora o componente ComboBox para escolha da saudação:
texto = ['Bom dia', 'Boa tarde', 'Boa noite'] # lista com as saudações
cbox = ttk.Combobox(formulario, values = texto, font= ('Arial',12)) # o componente ComboBox
cbox.set('Bom dia') # saudação default (inicial)
cbox.place(x=150, y=70) # coordenadas do posicionamento do combobox no formulário
Depois vamos alterar a função "def funcao_saudar()" para que a saudação apareça como um "messagebox". Será necessário importar os compnentes "messagebox" e o "ttk" da mesma biblioteca TKinter. O código completo ficará assim:
from tkinter import *
from tkinter import messagebox, ttk
formulario = Tk()
formulario.geometry('900x450') # largura e altura da janela (formulário)
# formulario.state('zoomed')
formulario.title("Formulário em Python") # título do formulário
Label(formulario, text='Escolha a saudação, digite seu nome e depois clique em "OK"').pack()
Label(formulario, text='Digite seu nome:', font= ('Arial',12)).place(x=150, y=168)
entrada = Entry(formulario, font=("Arial", 12))
entrada.place(x=275, y=170)
def funcao_saudar():
saudacao = cbox.get()
nome = entrada.get()
mensagem = f'{saudacao} {nome}!'
messagebox.showinfo(title = 'Saudação', message = mensagem)
entrada.delete(0, END) # apaga a caixa de entrada de texto
Button(formulario, text='OK', command = funcao_saudar).place(x=480, y=168)
# Caixa de texto ComboBox
texto = ['Bom dia', 'Boa tarde', 'Boa noite'] # lista com as saudações
cbox = ttk.Combobox(formulario, values = texto, font= ('Arial',12))
cbox.set('Bom dia')
cbox.place(x=150, y=70)
O formulário ficará assim:
Se você quiser que o formulário abra em tela cheia, é só comentar o "formulario.geometry" e incluir o "formulario.state" conforme abaixo:
# formulario.geometry('900x450') # largura e altura da janela (formulário)
formulario.state('zoomed') # abre a janela (formulário) em tela cheia
Agora é só começar a explorar os demais componentes dessa excelente biblioteca do Python.
Espero que tenham gostado. Essa biblioteca eu utilizei para desenvolver um software para as concessionárias Fiat e um similar para a Jeep (grupo Stellantis).
Bons estudos!
https://www.linkedin.com/in/eberbrea/
https://github.com/ebrea