Введение
В этом проекте мы создадим приложение цифровой часов на Python с использованием библиотеки Tkinter. Этот часы будут отображать текущее время и дату, и позволят пользователю переключаться между 12-часовым и 24-часовым форматами времени. Мы разделим код на несколько шагов, начиная с установки необходимых библиотек и заканчивая запуском проекта.
👀 Предпросмотр

🎯 Задачи
В этом проекте вы научитесь:
- Как устанавливать необходимые библиотеки для создания цифровых часов на Python.
- Как настраивать проект, создавая Python-скрипт и импортируя необходимые библиотеки.
- Как определить функцию для обновления и отображения текущего времени и даты.
- Как создать функцию для переключения между 12-часовым и 24-часовым форматами времени.
- Как создать главное окно приложения и настроить стили GUI.
- Как создать и разместить компоненты GUI на главном окне.
- Как запустить часы, вызвав необходимые функции и запустив главный цикл GUI.
🏆 Достижения
После завершения этого проекта вы сможете:
- Устанавливать библиотеки с использованием pip, менеджера пакетов Python.
- Использовать библиотеку Tkinter для создания графических пользовательских интерфейсов в Python.
- Форматировать и отображать время и дату в Python.
- Настраивать внешний вид компонентов GUI с использованием тематических стилей.
- Создавать кнопки с разным текстом и функциональностью.
- Запускать Python-скрипт и выполнять главный цикл GUI.
Установить необходимые библиотеки
Прежде чем начать создавать цифровые часы на Python, необходимо убедиться, что установлены необходимые библиотеки. В этом шаге мы установим необходимые библиотеки с использованием pip, менеджера пакетов Python.
sudo apt update
sudo apt-get install python3-tk -y
pip install ttkthemes
Вот, для чего эти библиотеки:
tkinter: Эта библиотека предоставляет инструменты и компоненты, необходимые для создания графических пользовательских интерфейсов (GUI) в Python. Это стандартная библиотека для разработки GUI.ttkthemes: Эта библиотека позволяет использовать тематические стили и настраивать внешний вид компонентов Tkinter, чтобы нашим цифровым часам был визуально привлекательный дизайн.
Вы можете установить эти библиотеки с использованием вышеуказанных команд в терминале или командной строке. После установки вы готовы приступить к созданию цифровых часов, как описано в следующих шагах.
Теперь создайте новый Python-файл под названием digital_clock.py и откройте его в предпочитаемом редакторе кода.
cd ~/project
touch digital_clock.py
Настройка проекта
Сначала давайте настроим проект, создав необходимый Python-скрипт и импортировав требуемые библиотеки.
## Import necessary libraries
import tkinter as tk
from tkinter import ttk
from ttkthemes import ThemedStyle
from time import strftime
В этом шаге:
- Мы импортируем библиотеку
tkinterдля создания графического пользовательского интерфейса (GUI). - Мы импортируем конкретные компоненты (
ttk,ThemedStyle) изtkinterдля более продвинутой стилизации. - Мы импортируем функцию
strftimeиз модуляtimeдля форматирования и отображения времени.
Определить функцию отображения времени
Далее, давайте определим функцию для обновления и отображения текущего времени и даты.
def time():
current_time_format = "%H:%M:%S" if is_24_hour_format else "%I:%M:%S %p"
current_time = strftime(current_time_format)
current_date = strftime("%A, %B %d, %Y")
label_time.config(text=current_time)
label_date.config(text=current_date)
label_time.after(1000, time)
В этом шаге:
- Мы создаем функцию под названием
time(), которая обновляет метки времени и даты. - Переменная
current_time_formatопределяет, использовать 24-часовой или 12-часовой формат времени в зависимости от флагаis_24_hour_format. - Мы используем функцию
strftime, чтобы получить текущее время и дату в нужном формате. - Метки (
label_timeиlabel_date) обновляются текущим временем и датой соответственно. - Строка
label_time.after(1000, time)запланировывает выполнение функцииtimeкаждые 1000 миллисекунд (1 секунда), чтобы постоянно обновлять время.
Переключать формат времени
Давайте создадим функцию, которая позволяет пользователю переключаться между 12-часовым и 24-часовым форматами времени.
def toggle_time_format():
global is_24_hour_format
is_24_hour_format = not is_24_hour_format
time_format_button.config(text="12 Hour" if is_24_hour_format else "24 Hour")
В этом шаге:
- Мы определяем функцию под названием
toggle_time_format(), которая переключает флагis_24_hour_formatмеждуTrueиFalse. - Надпись на кнопке формата времени (
time_format_button) обновляется для отображения "12 Hour" или "24 Hour" в зависимости от текущего формата.
Создать главное окно приложения
Теперь давайте создадим главное окно приложения и зададим его заголовок и размеры.
root = tk.Tk()
root.title("Digital Clock")
root.geometry("400x250")
В этом шаге:
- Мы создаем главное окно приложения с использованием
tk.Tk(). - Мы задаем заголовок окна "Digital Clock".
- Размеры окна устанавливаются в 400x250 пикселей.
Настроить стили GUI
Настройте стили для меток, кнопок и рамок, чтобы настроить внешний вид часов.
style = ThemedStyle(root)
style.set_theme("plastik")
style.configure(
"TLabel", foreground="#FF5733", background="#333333", font=("calibri", 48, "bold")
)
style.configure(
"TButton", foreground="#FF5733", background="#333333", font=("calibri", 10, "bold")
)
style.configure("TFrame", background="#333333")
В этом шаге:
- Мы создаем тематический стиль для компонентов GUI, чтобы применить единый стиль.
- Цвет текста метки, цвет фона и шрифт настраиваются.
- Цвет текста кнопки, цвет фона и шрифт настраиваются.
- Цвет фона рамки настраивается.
Создать и разместить компоненты GUI
Теперь давайте создадим и разместите компоненты GUI на главном окне.
frame = ttk.Frame(root, style="TFrame", padding=20)
frame.place(relx=0.5, rely=0.5, anchor="center")
label_time = ttk.Label(frame, font=("calibri", 48, "bold"))
label_time.pack()
label_date = ttk.Label(frame, font=("calibri", 16))
label_date.pack()
is_24_hour_format = True
time_format_button = ttk.Button(
frame, text="12 Hour", command=toggle_time_format, style="TButton"
)
time_format_button.pack(pady=20)
В этом шаге:
- Мы создаем рамку (
frame) с указанным стилем и отступами. - Рамка центрируется в главном окне.
- Создаются две метки (
label_timeиlabel_date) для отображения времени и даты. - Для
is_24_hour_formatзадается начальное значениеTrue. - Создается кнопка (
time_format_button) с текстом "12 Hour", и функцияtoggle_time_formatзадается в качестве ее команды. - Все компоненты упаковываются и размещаются в рамке.
Запустить часы
Наконец, давайте запустим часы, вызвав функцию time и запустив главный цикл GUI.
time()
root.mainloop()
В этом шаге:
- Мы вызываем функцию
time(), чтобы инициализировать часы. - Метод
root.mainloop()запускает главный цикл GUI, позволяя приложению запускаться и обновляться в режиме реального времени.
Теперь давайте запустим приложение цифровых часов.
cd ~/project
python digital_clock.py

Резюме
В этом проекте мы создали приложение цифровых часов с использованием Python и Tkinter. Мы разделили процесс на несколько шагов, включая настройку проекта, определение функций для отображения времени и переключения формата, настройку стилей GUI, создание компонентов GUI и запуск приложения с цифровыми часами. Это цифровые часы отображают текущее время и дату и позволяют пользователям переключаться между 12-часовым и 24-часовым форматами времени.



