Créer une horloge numérique avec Python

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, nous allons créer une application d'horloge numérique en utilisant Python et la bibliothèque Tkinter. Cette horloge affichera à la fois l'heure et la date actuelles, et elle permettra à l'utilisateur de basculer entre les formats d'heure 12 heures et 24 heures. Nous allons diviser le code en plusieurs étapes, commençant par l'installation des bibliothèques requises et se terminant par l'exécution du projet.

👀 Aperçu

Aperçu de l'application d'horloge numérique

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment installer les bibliothèques nécessaires pour construire une horloge numérique avec Python.
  • Comment configurer le projet en créant le script Python et en important les bibliothèques requises.
  • Comment définir une fonction pour mettre à jour et afficher l'heure et la date actuelles.
  • Comment créer une fonction pour basculer entre les formats d'heure 12 heures et 24 heures.
  • Comment créer la fenêtre principale de l'application et configurer les styles d'interface graphique.
  • Comment créer et placer les composants d'interface graphique sur la fenêtre principale.
  • Comment démarrer l'horloge en appelant les fonctions nécessaires et en exécutant la boucle principale d'interface graphique.

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Installer des bibliothèques à l'aide de pip, le gestionnaire de packages Python.
  • Utiliser la bibliothèque Tkinter pour créer des interfaces graphiques utilisateur en Python.
  • Formater et afficher l'heure et la date en Python.
  • Personnaliser l'apparence des composants d'interface graphique à l'aide de styles thématiques.
  • Créer des boutons avec différents textes et fonctionnalités.
  • Exécuter un script Python et exécuter une boucle principale d'interface graphique.

Installer les bibliothèques requises

Avant de commencer à construire notre horloge numérique avec Python, nous devons nous assurer d'avoir installé les bibliothèques nécessaires. Dans cette étape, nous installerons les bibliothèques requises à l'aide de pip, le gestionnaire de packages Python.

sudo apt update
sudo apt-get install python3-tk -y
pip install ttkthemes

Voici ce que font ces bibliothèques :

  • tkinter : Cette bibliothèque fournit les outils et les composants nécessaires pour créer des interfaces graphiques utilisateur (GUI) en Python. C'est une bibliothèque standard pour le développement d'interface graphique.
  • ttkthemes : Cette bibliothèque nous permet d'utiliser des styles thématiques et de personnaliser l'apparence de nos composants Tkinter pour donner à notre horloge numérique un design visuellement attrayant.

Vous pouvez installer ces bibliothèques en utilisant les commandes ci-dessus dans votre terminal ou votre invite de commande. Une fois installées, vous êtes prêt à passer à la construction de l'horloge numérique comme décrit dans les étapes suivantes.

Maintenant, créez un nouveau fichier Python appelé digital_clock.py et ouvrez-le dans votre éditeur de code préféré.

cd ~/project
touch digital_clock.py
✨ Vérifier la solution et pratiquer

Configuration du projet

Tout d'abord, configurons le projet en créant le script Python nécessaire et en important les bibliothèques requises.

## Import necessary libraries
import tkinter as tk
from tkinter import ttk
from ttkthemes import ThemedStyle
from time import strftime

Dans cette étape :

  • Nous importons la bibliothèque tkinter pour créer l'interface graphique utilisateur (GUI).
  • Nous importons des composants spécifiques (ttk, ThemedStyle) de tkinter pour un style avancé.
  • Nous importons la fonction strftime du module time pour formater et afficher l'heure.
✨ Vérifier la solution et pratiquer

Définir la fonction d'affichage de l'heure

Ensuite, définissons une fonction pour mettre à jour et afficher l'heure et la date actuelles.

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)

Dans cette étape :

  • Nous créons une fonction appelée time() qui met à jour les étiquettes d'heure et de date.
  • La variable current_time_format détermine si on utilise le format d'heure de 24 heures ou de 12 heures en fonction du drapeau is_24_hour_format.
  • Nous utilisons la fonction strftime pour obtenir l'heure et la date actuelles au format souhaité.
  • Les étiquettes (label_time et label_date) sont mises à jour avec l'heure et la date actuelles respectivement.
  • La ligne label_time.after(1000, time) programme la fonction time pour s'exécuter toutes les 1000 millisecondes (1 seconde) pour mettre constamment à jour l'heure.
✨ Vérifier la solution et pratiquer

Basculer le format d'heure

Créons une fonction qui permet à l'utilisateur de basculer entre les formats d'heure de 12 heures et de 24 heures.

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")

Dans cette étape :

  • Nous définissons une fonction appelée toggle_time_format() qui bascule le drapeau is_24_hour_format entre True et False.
  • L'étiquette sur le bouton de format d'heure (time_format_button) est mise à jour pour afficher "12 Hour" ou "24 Hour" selon le format actuel.
✨ Vérifier la solution et pratiquer

Créer la fenêtre principale de l'application

Maintenant, créons la fenêtre principale de l'application et définissons son titre et ses dimensions.

root = tk.Tk()
root.title("Digital Clock")
root.geometry("400x250")

Dans cette étape :

  • Nous créons la fenêtre principale de l'application en utilisant tk.Tk().
  • Nous définissons le titre de la fenêtre sur "Digital Clock".
  • Les dimensions de la fenêtre sont définies sur 400x250 pixels.
✨ Vérifier la solution et pratiquer

Configurer les styles de l'interface graphique

Configurez les styles des étiquettes, des boutons et des cadres pour personnaliser l'apparence de l'horloge.

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")

Dans cette étape :

  • Nous créons un style thématiques pour les composants de l'interface graphique pour appliquer un aspect et une sensation cohérents.
  • La couleur du texte de l'étiquette, la couleur d'arrière-plan et la police sont personnalisées.
  • La couleur du texte du bouton, la couleur d'arrière-plan et la police sont personnalisées.
  • La couleur d'arrière-plan du cadre est personnalisée.
✨ Vérifier la solution et pratiquer

Créer et placer les composants de l'interface graphique

Maintenant, créons et plaçons les composants de l'interface graphique sur la fenêtre principale.

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)

Dans cette étape :

  • Nous créons un cadre (frame) avec le style et la marge spécifiés.
  • Le cadre est centré dans la fenêtre principale.
  • Deux étiquettes (label_time et label_date) sont créées pour afficher l'heure et la date.
  • Une valeur initiale de True est définie pour is_24_hour_format.
  • Un bouton (time_format_button) est créé avec le texte "12 Hour" et la fonction toggle_time_format est définie comme commande.
  • Tous les composants sont empaquetés et placés dans le cadre.
✨ Vérifier la solution et pratiquer

Démarrer l'horloge

Enfin, commençons l'horloge en appelant la fonction time et en exécutant la boucle principale de l'interface graphique.

time()

root.mainloop()

Dans cette étape :

  • Nous appelons la fonction time() pour initialiser l'horloge.
  • La méthode root.mainloop() lance la boucle principale de l'interface graphique, permettant à l'application de s'exécuter et de se mettre à jour en temps réel.

Maintenant, exécutons l'application d'horloge numérique.

cd ~/project
python digital_clock.py
Interface de l'application d'horloge numérique
✨ Vérifier la solution et pratiquer

Sommaire

Dans ce projet, nous avons créé une application d'horloge numérique en utilisant Python et Tkinter. Nous avons divisé le processus en plusieurs étapes, y compris la configuration du projet, la définition de fonctions pour l'affichage du temps et le basculement du format, la configuration des styles de l'interface graphique, la création des composants de l'interface graphique et l'exécution de l'application d'horloge. Cette horloge numérique affiche l'heure et la date actuelles et permet aux utilisateurs de basculer entre les formats 12 heures et 24 heures.