DevGang
Авторизоваться

Создание конвертера температуры в Python с помощью Tkinter

Добро пожаловать в очередной урок из серии Tkinter, в котором мы узнаем, как создать конвертер температуры с помощью библиотеки Tkinter. Tkinter - это универсальная и полезная библиотека, которую мы можем использовать для создания GUI-приложений. В этой статье мы обсудим ее установку и использование для создания конвертера из Цельсия в Фаренгейт и из Фаренгейта в Цельсий. Итак, давайте начнём.

Базовые понятия о температуре

Температура измеряет жару или холод. По шкале Цельсия точки замерзания и кипения воды равны 0°C и 100°C соответственно. По шкале Фаренгейта эти точки равны 32°F и 212°F. Шкала Цельсия широко используется во всем мире, в то время как шкала Фаренгейта распространена в Соединенных Штатах. Чтобы перевести градусы Цельсия в градусы Фаренгейта, используйте уравнение 1, а чтобы перевести градусы Фаренгейта в градусы Цельсия, используйте уравнение 2. Понимание этих шкал жизненно важно для решения повседневных задач, таких как приготовление пищи и прогнозирование погоды, а также для научных исследований.

Уравнение 1:

Уравнение 2:

Масштабирование
Масштабирование

Создание конвертера Цельсия в Фаренгейт

Теперь, когда мы знаем, как преобразовывать температуру, давайте попробуем внедрить логику в наш код на Python, чтобы сделать из него приложение. Давайте посмотрим, как пошагово создать конвертер из градусов Цельсия в градусы Фаренгейта.

Шаг 1: Импорт Tkinter

Tkinter - это библиотека Python, используемая для создания графических пользовательских интерфейсов. Если у вас нет предустановленной Tkinter, вы можете установить её на свою систему, выполнив следующую команду:

pip install tk

Для начала импортируем библиотеку Tkinter под именем "tk" для удобства использования.

import tkinter as tk

Шаг 2: Определение функции преобразования

Сначала мы создадим функцию celsius_to_fahrenheit() для преобразования значений Цельсия в значения Фаренгейта. Эта функция будет получать значение Цельсия из виджета ввода, затем конвертировать его в Фаренгейт по формуле (Цельсий × 9/5) + 32 и, наконец, выводить результат.

def celsius_to_fahrenheit():
    try:
        celsius = float(celsius_entry.get())
        fahrenheit = (celsius * 9/5) + 32
        fahrenheit_label.config(text=f"{fahrenheit:.2f}°F", fg="#F1F1F2")
    except ValueError:
        fahrenheit_label.config(text="")

Шаг 3: Создание главного окна

Затем мы инициализируем главное (корневое) окно приложения и установим для него заголовок "Конвертер Цельсия в Фаренгейт". Мы также настроим цвет фона.

root = tk.Tk()
root.title("Celsius to Fahrenheit Converter")
root.configure(background="#A1D6E2")

Шаг 4: Создание ярлыка и виджета ввода

После этого мы создадим ярлык, предлагающий пользователю ввести температуру в градусах Цельсия. Кроме того, мы создадим виджет ввода, чтобы пользователь мог ввести значение по Цельсию.

input_label = tk.Label(root, text="Enter the temperature in Celsius",
                       bg="#1995AD", fg="#F1F1F2", font=("Arial", 14, "bold"))
input_label.grid(row=0, column=0, padx=10, pady=10)
 
celsius_entry = tk.Entry(root)
celsius_entry.grid(row=1, column=0, padx=10, pady=10)

Шаг 5: Создание кнопки конвертации

Теперь мы создадим кнопку с надписью "Конвертация", при нажатии на которую будет запускаться функция celsius_to_fahrenheit().

convert_button = tk.Button(root, text="Convert", command=celsius_to_fahrenheit,
                           bg="#1995AD", fg="#F1F1F2", font=("Arial", 14, "bold"))
convert_button.grid(row=2, column=0, padx=10, pady=10)

Шаг 6: Создание ярлыка для вывода

Затем мы создадим метку для отображения преобразованной температуры в градусах Фаренгейта.

output_label = tk.Label(root, text="Temperature in Fahrenheit", bg="#1995AD", fg="#F1F1F2", font=("Arial", 14, "bold"))
output_label.grid(row=3, column=0, padx=10, pady=10)
 
fahrenheit_label = tk.Label(root, text="", bg="#1995AD", fg="#F1F1F2", font=("Arial", 14, "bold"))
fahrenheit_label.grid(row=4, column=0, padx=10, pady=10)

Шаг 7: Запуск цикла событий

Наконец, мы запустим цикл событий Tkinter для обработки взаимодействия с пользователем и обеспечения отзывчивости графического интерфейса.

root.mainloop()

Полный код

import tkinter as tk
 
 
def celsius_to_fahrenheit():
    try:
        celsius = float(celsius_entry.get())
        fahrenheit = (celsius * 9/5) + 32
        fahrenheit_label.config(text=f"{fahrenheit:.2f}°F", fg="#F1F1F2")
    except ValueError:
        fahrenheit_label.config(text="")
 
 
# Create the main window
root = tk.Tk()
root.title("Celsius to Fahrenheit Converter")
root.configure(background="#A1D6E2")
 
# Create labels and entry widgets
input_label = tk.Label(root, text="Enter the temperature in Celsius",
                       bg="#1995AD", fg="#F1F1F2", font=("Arial", 14, "bold"))
input_label.grid(row=0, column=0, padx=10, pady=10)
 
celsius_entry = tk.Entry(root)
celsius_entry.grid(row=1, column=0, padx=10, pady=10)
 
convert_button = tk.Button(root, text="Convert", command=celsius_to_fahrenheit,
                           bg="#1995AD", fg="#F1F1F2", font=("Arial", 14, "bold"))
convert_button.grid(row=2, column=0, padx=10, pady=10)
 
output_label = tk.Label(root, text="Temperature in Fahrenheit", bg="#1995AD", fg="#F1F1F2", font=("Arial", 14, "bold"))
output_label.grid(row=3, column=0, padx=10, pady=10)
 
fahrenheit_label = tk.Label(root, text="", bg="#1995AD", fg="#F1F1F2", font=("Arial", 14, "bold"))
fahrenheit_label.grid(row=4, column=0, padx=10, pady=10)
 
# Start the main event loop
root.mainloop()

Выходные данные

При запуске мы увидим окно приложения с секцией ввода, которая принимает температуру в градусах Цельсия, и кнопкой "Конвертация".

Окно приложения
Окно приложения
Мы вводим входные данные
Мы вводим входные данные
Отображается конвертированная температура
Отображается конвертированная температура

Мы вводим значение "32", и при нажатии на кнопку преобразования температура преобразуется в градусы Фаренгейта, и на экране появляется значение "89.60".

Создание конвертера Фаренгейта в Цельсий

Видите, создать конвертер Цельсия в Фаренгейт было довольно просто. Аналогичным образом мы можем создать конвертер Фаренгейта в Цельсий, шаги будут одинаковыми в большинстве случаев, единственное изменение - определение функции. Внимательно изучите приведенный код.

def fahrenheit_to_celsius():
    try:
        fahrenheit = float(fahrenheit_entry.get())
        celsius = (fahrenheit - 32) * 5/9
        celsius_label.config(text=f"{celsius:.2f}°C", fg="#330000")
    except ValueError:
        celsius_label.config(text="")

Этот код определяет функцию fahrenheit_to_celsius() для преобразования Фаренгейта в Цельсий. Она получает значение Фаренгейта из виджета ввода, преобразует его в Цельсий по формуле и отображает результат. Если введенное значение не является правильным числом, оно очищает отображаемое значение Цельсия.

В код было внесено ещё несколько изменений, которые не требуют пояснений. Вот полный код.

Полный код

import tkinter as tk
 
 
def fahrenheit_to_celsius():
    try:
        fahrenheit = float(fahrenheit_entry.get())
        celsius = (fahrenheit - 32) * 5/9
        celsius_label.config(text=f"{celsius:.2f}°C", fg="#330000")
    except ValueError:
        celsius_label.config(text="")
 
 
# Create the main window
root = tk.Tk()
root.title("Fahrenheit to Celsius Converter")
root.configure(background="#990011")
 
# Define the Arial font
font_style = ("Arial", 14, "bold")
 
# Create labels and entry widgets
input_label = tk.Label(root, text="Enter the temperature in Fahrenheit", bg="#FCF6F5", fg="#330000", font=font_style)
input_label.grid(row=0, column=0, padx=10, pady=10)
 
fahrenheit_entry = tk.Entry(root)
fahrenheit_entry.grid(row=1, column=0, padx=10, pady=10)
 
convert_button = tk.Button(root, text="Convert", command=fahrenheit_to_celsius,
                           bg="#FCF6F5", fg="#330000", font=font_style)
convert_button.grid(row=2, column=0, padx=10, pady=10)
 
output_label = tk.Label(root, text="Temperature in Celsius", bg="#FCF6F5", fg="#330000", font=font_style)
output_label.grid(row=3, column=0, padx=10, pady=10)
 
celsius_label = tk.Label(root, text="", bg="#FCF6F5", fg="#330000", font=font_style)
celsius_label.grid(row=4, column=0, padx=10, pady=10)
 
# Start the main event loop
root.mainloop()

Выходные данные

При выполнении приведенного выше кода мы получим результат, как показано ниже:

Окно приложения
Окно приложения
Мы вводим входные данные
Мы вводим входные данные
Отображается конвертированная температура
Отображается конвертированная температура

Заключение

В этом уроке по Tkinter мы сделали приложение для преобразования температуры. Tkinter, библиотека Python, помогает создавать пользовательские интерфейсы. Мы начнем с установки Tkinter, а затем сосредоточимся на конвертации градусов Цельсия в градусы Фаренгейта с помощью простого кода. Шаг за шагом мы создаем конвертер, в котором пользователи вводят температуру по Цельсию и получают эквиваленты по Фаренгейту. По аналогичным принципам мы также создадим конвертер из Фаренгейта в Цельсий. С помощью этого простого проекта данное руководство поможет новичкам создать практичные графические интерфейсы Python для повседневного использования.

Источник:

#Начинающим #Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу