Создать цифровые часы с использованием Python

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом проекте мы создадим приложение цифровой часов на 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
Digital clock application interface
✨ Проверить решение и практиковаться

Резюме

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