Resumo : neste tutorial, você aprenderá como construir um aplicativo conversor de temperatura Tkinter.
Introdução ao aplicativo Conversor de Temperatura
A seguir mostramos o aplicativo Conversor de Temperatura que você irá construir. O aplicativo converte uma temperatura de Fahrenheit para Celsius:
Basicamente, o aplicativo possui um rótulo , uma entrada e um botão . Quando você insere uma temperatura em Fahrenheit e clica no Convert
botão, o valor na caixa de texto será convertido de Fahrenheit para Celsius.
Se você inserir um valor que não pode ser convertido em número, o programa mostrará um erro.
Para construir este aplicativo, siga estas etapas.
Primeiro, importe o tkinter
módulo, ttk
o submódulo e a showerror
função de tkinter.messagebox
:
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showerror
Linguagem de código: Python ( python )
Segundo, crie a janela raiz e defina suas configurações:
# root window
root = tk.Tk()
root.title('Temperature Converter')
root.geometry('300x70')
root.resizable(False, False)
Linguagem de código: Python ( python )
Terceiro, defina uma função que converta uma temperatura de Fahrenheit para Celsius:
def fahrenheit_to_celsius(f):
""" Convert fahrenheit to celsius
"""
return (f - 32) * 5/9
Linguagem de código: Python ( python )
Quarto, crie um quadro que contenha campos de formulário:
frame = ttk.Frame(root)
Linguagem de código: Python ( python )
Quinto, defina uma opção que será utilizada por todos os campos do formulário:
options = {'padx': 5, 'pady': 5}
Linguagem de código: Python ( python )
Sexto, defina o rótulo, a entrada e o botão. O rótulo mostrará o resultado assim que você clicar no Convert
botão:
# temperature label
temperature_label = ttk.Label(frame, text='Fahrenheit')
temperature_label.grid(column=0, row=0, sticky='W', **options)
# temperature entry
temperature_entry = ttk.Entry(frame, textvariable=temperature)
temperature_entry.grid(column=1, row=0, **options)
temperature_entry.focus()
# convert button
convert_button = ttk.Button(frame, text='Convert')
convert_button.grid(column=2, row=0, sticky='W', **options)
convert_button.configure(command=convert_button_clicked)
# result label
result_label = ttk.Label(frame)
result_label.grid(row=1, columnspan=3, **options)
Linguagem de código: Python ( python )
Por fim, coloque o quadro na janela raiz e execute o mainloop()
método:
frame.grid(padx=10, pady=10)
root.mainloop()
Linguagem de código: Python ( python )
Junte tudo.
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showerror
# root window
root = tk.Tk()
root.title('Temperature Converter')
root.geometry('300x70')
root.resizable(False, False)
def fahrenheit_to_celsius(f):
""" Convert fahrenheit to celsius
"""
return (f - 32) * 5/9
# frame
frame = ttk.Frame(root)
# field options
options = {'padx': 5, 'pady': 5}
# temperature label
temperature_label = ttk.Label(frame, text='Fahrenheit')
temperature_label.grid(column=0, row=0, sticky='W', **options)
# temperature entry
temperature = tk.StringVar()
temperature_entry = ttk.Entry(frame, textvariable=temperature)
temperature_entry.grid(column=1, row=0, **options)
temperature_entry.focus()
# convert button
def convert_button_clicked():
""" Handle convert button click event
"""
try:
f = float(temperature.get())
c = fahrenheit_to_celsius(f)
result = f'{f} Fahrenheit = {c:.2f} Celsius'
result_label.config(text=result)
except ValueError as error:
showerror(title='Error', message=error)
convert_button = ttk.Button(frame, text='Convert')
convert_button.grid(column=2, row=0, sticky='W', **options)
convert_button.configure(command=convert_button_clicked)
# result label
result_label = ttk.Label(frame)
result_label.grid(row=1, columnspan=3, **options)
# add padding to the frame and show it
frame.grid(padx=10, pady=10)
# start the app
root.mainloop()
Linguagem de código: Python ( python )
Neste tutorial, você aprendeu como desenvolver um aplicativo Tkinter simples que converte uma temperatura de Fahrenheit para Celsius.