Автор оригинала: Pankaj Kumar.
Привет, ученик! Сегодня мы собираемся создать графическое приложение, калькулятор возраста с использованием Python Tkinter .
Давайте начнем!
Название приложения говорит обо всем, что приложение будет делать, поэтому давайте сразу приступим к созданию приложения.
Разработка интерфейса калькулятора возраста
Первым шагом в любом проекте Tkinter является проектирование окна приложения. Проектирование включает в себя два этапа, а именно:
- Создание пользовательского окна
- Добавление элементов в оконное приложение
Создание пользовательского окна
Чтобы создать пустое пользовательское окно. Мы должны импортировать модуль tkinter
и создать объект окна. Затем мы добавим цвет фона и название оконного приложения.
И мы также установили изменяемые размеры объектов в False , чтобы убедиться, что размеры остаются неизменными. Код для того же самого показан ниже.
import tkinter as tk window = tk.Tk() window.geometry("400x300") window.config(bg="#F7DC6F") window.resizable(width=False,height=False) window.title('Age Calculator!')
Добавление всех необходимых элементов в окно
Следующий шаг включает в себя добавление всех меток, полей ввода, кнопок и текстовых полей в нашем приложении.
1. Этикетки
Мы будем использовать несколько ярлыков, где каждый ярлык будет служить другой цели. У нас были бы ярлыки для вводной информации, маркировка полей ввода с просьбой указать дату рождения пользователя.
2. Входные ящики
Мы будем использовать три поля для ввода даты рождения пользователя. Один будет для даты, один для месяца, в то время как последний будет для года рождения.
3. Кнопки
В нашем приложении мы будем использовать две кнопки, одну для расчета возраста , а другую для выхода из приложения.
4. Текстовые поля
Мы будем использовать только одно текстовое поле для отображения расчетного возраста.
Весь код дизайна показан ниже. мы будем настраивать элементы в соответствии с нашими предпочтениями. Вы можете изменить его, если хотите.
l1 = tk.Label(window,text="The Age Calculator!",font=("Arial", 20),fg="black",bg="#F7DC6F") l2 = tk.Label(window,font=("Arial",12),text="Enter your birthday which includes the day-month-year.",fg="black",bg="#F7DC6F") l_d=tk.Label(window,text="Date: ",font=('Arial',12,"bold"),fg="darkgreen",bg="#F7DC6F") l_m=tk.Label(window,text="Month: ",font=('Arial',12,"bold"),fg="darkgreen",bg="#F7DC6F") l_y=tk.Label(window,text="Year: ",font=('Arial',12,"bold"),fg="darkgreen",bg="#F7DC6F") e1=tk.Entry(window,width=5) e2=tk.Entry(window,width=5) e3=tk.Entry(window,width=5) b1=tk.Button(window,text="Calculate Age!",font=("Arial",13),command=get_age) l3 = tk.Label(window,text="The Calculated Age is: ",font=('Arial',12,"bold"),fg="darkgreen",bg="#F7DC6F") t1=tk.Text(window,width=5,height=0,state="disabled") b2=tk.Button(window,text="Exit Application!",font=("Arial",13),command=exit)
Размещение элементов на экране
Чтобы разместить элементы на экране, мы используем функцию place
, которая требует координат x и y для размещения элементов в правильном положении.
Код для размещения элементов показан ниже:
l1.place(x=70,y=5) l2.place(x=10,y=40) l_d.place(x=100,y=70) l_m.place(x=100,y=95) l_y.place(x=100,y=120) e1.place(x=180,y=70) e2.place(x=180,y=95) e3.place(x=180,y=120) b1.place(x=100,y=150) l3.place(x=50,y=200) t1.place(x=240,y=203) b2.place(x=100,y=230)
Интерфейс для калькулятора возраста в Tkinter
Окончательный дизайн приложения выглядит как окно, отображаемое ниже.
Добавление функциональных возможностей к кнопкам
1. Кнопка Рассчитать Возраст
Чтобы рассчитать возраст, мы сначала должны получить три входных данных ( данные – месяц – год ) из трех полей ввода. Теперь следующий шаг включает в себя вычисление разницы между датой рождения и текущей датой.
Чтобы получить текущую дату, мы импортируем функцию data
из модуля datetime
. Мы также создаем объект, в котором хранится вся сегодняшняя дата. Код для того же самого показан ниже:
from datetime import date today = date.today()
Теперь мы создаем функцию, которая вычисляет возраст и подключается к кнопке вычислить возраст. Функция получает три записи и находит возраст ( разница между текущим и датой рождения )
Рассчитанный возраст затем вставляется в текстовое поле после очистки предыдущей информации в текстовом поле. Код для того же самого показан ниже:
def get_age(): d= int(e1.get()) m=int(e2.get()) y=int(e3.get()) age = today.year-y-((today.month, today.day)<(m,d)) t1.config(state='normal') t1.delete('1.0', tk.END) t1.insert(tk.END,age) t1.config(state='disabled')
Выделенная строка является основным оператором кода, который вычисляет возраст.
2. Кнопка Выхода из приложения
Для кнопки выхода из приложения мы просто создаем функцию, которая уничтожает окно, и после этого добавляем атрибут command
в объявление кнопки.
Код функции выхода показан ниже:
def exit(): window.destroy()
Полный код для калькулятора возраста на Python
Весь код приведен ниже:
from datetime import date today = date.today() def exit(): window.destroy() def get_age(): d= int(e1.get()) m=int(e2.get()) y=int(e3.get()) age =today.year-y-((today.month, today.day)<(m,d)) t1.config(state='normal') t1.delete('1.0', tk.END) t1.insert(tk.END,age) t1.config(state='disabled') import tkinter as tk window = tk.Tk() window.geometry("400x300") window.config(bg="#F7DC6F") window.resizable(width=False,height=False) window.title('Age Calculator!') l1 = tk.Label(window,text="The Age Calculator!",font=("Arial", 20),fg="black",bg="#F7DC6F") l2 = tk.Label(window,font=("Arial",12),text="Enter your birthday which includes the day-month-year.",fg="black",bg="#F7DC6F") l_d=tk.Label(window,text="Date: ",font=('Arial',12,"bold"),fg="darkgreen",bg="#F7DC6F") l_m=tk.Label(window,text="Month: ",font=('Arial',12,"bold"),fg="darkgreen",bg="#F7DC6F") l_y=tk.Label(window,text="Year: ",font=('Arial',12,"bold"),fg="darkgreen",bg="#F7DC6F") e1=tk.Entry(window,width=5) e2=tk.Entry(window,width=5) e3=tk.Entry(window,width=5) b1=tk.Button(window,text="Calculate Age!",font=("Arial",13),command=get_age) l3 = tk.Label(window,text="The Calculated Age is: ",font=('Arial',12,"bold"),fg="darkgreen",bg="#F7DC6F") t1=tk.Text(window,width=5,height=0,state="disabled") b2=tk.Button(window,text="Exit Application!",font=("Arial",13),command=exit) l1.place(x=70,y=5) l2.place(x=10,y=40) l_d.place(x=100,y=70) l_m.place(x=100,y=95) l_y.place(x=100,y=120) e1.place(x=180,y=70) e2.place(x=180,y=95) e3.place(x=180,y=120) b1.place(x=100,y=150) l3.place(x=50,y=200) t1.place(x=240,y=203) b2.place(x=100,y=230) window.mainloop()
Выход:
Теперь, когда мы все закончили с частью кодирования. Давайте запустим приложение! И это работает отлично, то же самое можно увидеть на выводах ниже.
Вывод
Поздравляю! Сегодня вы узнали, как построить свой калькулятор возраста! Надеюсь, вам было весело!
Спасибо, что прочитали!