Erstelle eine digitale Uhr mit Python

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt werden wir eine digitale Uhr-Anwendung mit Python und der Tkinter-Bibliothek erstellen. Diese Uhr wird die aktuelle Zeit und das aktuelle Datum anzeigen und dem Benutzer ermöglichen, zwischen dem 12-Stunden- und dem 24-Stunden-Zeitenformat umzuschalten. Wir werden den Code in mehrere Schritte unterteilen, beginnend mit der Installation der erforderlichen Bibliotheken und endend mit dem Ausführen des Projekts.

👀 Vorschau

Vorschau der digitalen Uhr-Anwendung

🎯 Aufgaben

In diesem Projekt lernen Sie:

  • Wie man die erforderlichen Bibliotheken für das Erstellen einer digitalen Uhr mit Python installiert.
  • Wie man das Projekt einrichtet, indem man das Python-Skript erstellt und die erforderlichen Bibliotheken importiert.
  • Wie man eine Funktion definiert, um die aktuelle Zeit und das aktuelle Datum zu aktualisieren und anzuzeigen.
  • Wie man eine Funktion erstellt, um zwischen dem 12-Stunden- und dem 24-Stunden-Zeitenformat umzuschalten.
  • Wie man das Hauptanwendung-Fenster erstellt und die GUI-Stile konfiguriert.
  • Wie man die GUI-Komponenten auf dem Hauptfenster erstellt und platziert.
  • Wie man die Uhr startet, indem man die erforderlichen Funktionen aufruft und die Haupt-GUI-Schleife ausführt.

🏆 Errungenschaften

Nach Abschluss dieses Projekts können Sie:

  • Bibliotheken mit pip, dem Python-Paketmanager, installieren.
  • Die Tkinter-Bibliothek verwenden, um grafische Benutzeroberflächen in Python zu erstellen.
  • Zeit und Datum in Python formatieren und anzeigen.
  • Die Erscheinung von GUI-Komponenten mit themenbasierten Stilen anpassen.
  • Buttons mit unterschiedlichem Text und Funktionalität erstellen.
  • Ein Python-Skript ausführen und eine Haupt-GUI-Schleife ausführen.

Installiere erforderliche Bibliotheken

Bevor wir mit der Erstellung unserer digitalen Uhr mit Python beginnen, müssen wir sicherstellen, dass wir die erforderlichen Bibliotheken installiert haben. In diesem Schritt werden wir die erforderlichen Bibliotheken mit pip, dem Python-Paketmanager, installieren.

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

Hier ist, wofür diese Bibliotheken verwendet werden:

  • tkinter: Diese Bibliothek liefert die Tools und Komponenten, die zur Erstellung grafischer Benutzeroberflächen (GUIs) in Python erforderlich sind. Es ist eine Standardbibliothek für die GUI-Entwicklung.
  • ttkthemes: Diese Bibliothek ermöglicht es uns, themenbasierten Stilen zu verwenden und das Aussehen unserer Tkinter-Komponenten anzupassen, um unserer digitalen Uhr ein visuell ansprechendes Design zu geben.

Sie können diese Bibliotheken mit den obigen Befehlen in Ihrem Terminal oder der Befehlszeile installieren. Nachdem sie installiert sind, sind Sie bereit, mit der Erstellung der digitalen Uhr fortzufahren, wie in den folgenden Schritten beschrieben.

Jetzt erstellen Sie eine neue Python-Datei namens digital_clock.py und öffnen Sie sie in Ihrem bevorzugten Code-Editor.

cd ~/project
touch digital_clock.py
✨ Lösung prüfen und üben

Projekt einrichten

Zunächst legen wir das Projekt an, indem wir das erforderliche Python-Skript erstellen und die erforderlichen Bibliotheken importieren.

## Importiere erforderliche Bibliotheken
import tkinter as tk
from tkinter import ttk
from ttkthemes import ThemedStyle
from time import strftime

In diesem Schritt:

  • Wir importieren die tkinter-Bibliothek zum Erstellen der grafischen Benutzeroberfläche (GUI).
  • Wir importieren spezifische Komponenten (ttk, ThemedStyle) aus tkinter für fortgeschrittene Gestaltung.
  • Wir importieren die strftime-Funktion aus dem time-Modul, um die Zeit zu formatieren und anzuzeigen.
✨ Lösung prüfen und üben

Definiere die Zeitanzeigefunktion

Als nächstes definieren wir eine Funktion, um die aktuelle Zeit und das aktuelle Datum zu aktualisieren und anzuzeigen.

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)

In diesem Schritt:

  • Wir erstellen eine Funktion namens time(), die die Zeit- und Datums-Labels aktualisiert.
  • Die Variable current_time_format bestimmt, ob das 24-Stunden- oder das 12-Stunden-Zeitenformat verwendet werden soll, basierend auf dem Flag is_24_hour_format.
  • Wir verwenden die strftime-Funktion, um die aktuelle Zeit und das aktuelle Datum im gewünschten Format zu erhalten.
  • Die Labels (label_time und label_date) werden jeweils mit der aktuellen Zeit und dem aktuellen Datum aktualisiert.
  • Die Zeile label_time.after(1000, time) plant die Ausführung der time-Funktion alle 1000 Millisekunden (1 Sekunde), um die Zeit kontinuierlich zu aktualisieren.
✨ Lösung prüfen und üben

Wechsle das Zeitenformat

Lassen Sie uns eine Funktion erstellen, die es dem Benutzer ermöglicht, zwischen dem 12-Stunden- und dem 24-Stunden-Zeitenformat umzuschalten.

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

In diesem Schritt:

  • Wir definieren eine Funktion namens toggle_time_format(), die das Flag is_24_hour_format zwischen True und False umschaltet.
  • Das Label auf der Zeitenformat-Schaltfläche (time_format_button) wird aktualisiert, um "12 Hour" oder "24 Hour" basierend auf dem aktuellen Format anzuzeigen.
✨ Lösung prüfen und üben

Erstelle das Hauptanwendungsfenster

Jetzt erstellen wir das Hauptanwendungsfenster und legen seinen Titel und seine Abmessungen fest.

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

In diesem Schritt:

  • Wir erstellen das Hauptanwendungsfenster mit tk.Tk().
  • Wir setzen den Fenster-Titel auf "Digital Clock".
  • Die Abmessungen des Fensters werden auf 400x250 Pixel festgelegt.
✨ Lösung prüfen und üben

Konfiguriere die GUI-Stile

Konfiguriere die Stile für die Labels, Buttons und Rahmen, um das Aussehen der Uhr anzupassen.

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

In diesem Schritt:

  • Wir erstellen einen thematischen Stil für die GUI-Komponenten, um ein einheitliches Aussehen zu erzeugen.
  • Die Textfarbe, Hintergrundfarbe und Schriftart des Labels werden angepasst.
  • Die Textfarbe, Hintergrundfarbe und Schriftart des Buttons werden angepasst.
  • Die Hintergrundfarbe des Rahmens wird angepasst.
✨ Lösung prüfen und üben

Erstelle und platziere GUI-Komponenten

Jetzt erstellen und platzieren wir die GUI-Komponenten im Hauptfenster.

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)

In diesem Schritt:

  • Wir erstellen einen Rahmen (frame) mit dem angegebenen Stil und Innenabstand.
  • Der Rahmen wird im Zentrum des Hauptfensters platziert.
  • Zwei Labels (label_time und label_date) werden erstellt, um die Zeit und das Datum anzuzeigen.
  • Ein Anfangswert von True wird für is_24_hour_format gesetzt.
  • Ein Button (time_format_button) wird mit dem Text "12 Hour" erstellt und die toggle_time_format-Funktion als Befehl festgelegt.
  • Alle Komponenten werden gepackt und im Rahmen platziert.
✨ Lösung prüfen und üben

Starte die Uhr

Schließlich starten wir die Uhr, indem wir die time-Funktion aufrufen und die Haupt-GUI-Schleife ausführen.

time()

root.mainloop()

In diesem Schritt:

  • Wir rufen die time()-Funktion auf, um die Uhr zu starten.
  • Die root.mainloop()-Methode startet die Haupt-GUI-Schleife, wodurch die Anwendung in Echtzeit ausgeführt und aktualisiert werden kann.

Jetzt starten wir die digitale-Uhr-Anwendung.

cd ~/project
python digital_clock.py
Digital clock application interface
✨ Lösung prüfen und üben

Zusammenfassung

In diesem Projekt haben wir eine digitale-Uhr-Anwendung mit Python und Tkinter erstellt. Wir haben den Prozess in mehrere Schritte unterteilt, darunter das Einrichten des Projekts, das Definieren von Funktionen für die Zeitanzeige und das Formatwechsels, die Konfiguration von GUI-Stilen, das Erstellen von GUI-Komponenten und das Ausführen der Uhr-Anwendung. Diese digitale Uhr zeigt die aktuelle Zeit und das Datum an und ermöglicht es Benutzern, zwischen 12-Stunden- und 24-Stunden-Zeitformaten zu wechseln.