Eine schlichte Digitaluhr mit Python und tkinter für den Desktop

30. März 2025

Eine digitale Uhr muss nicht kompliziert sein – mit ein paar Zeilen Python und der tkinter-Bibliothek lässt sich schnell eine übersichtliche GUI zaubern, die Zeit und Datum anzeigt. Mein kleines Skript zeigt, wie man mit minimalem Aufwand eine funktionale Digitaluhr erstellt, die nicht nur praktisch, sondern auch optisch ansprechend ist – perfekt für Bastler, die tkinter ausprobieren möchten.

Bedienung: Nach dem Start des Skripts öffnet sich ein Fenster, das die aktuelle Uhrzeit im 24-Stunden-Format (HH:MM:SS) und darunter den Wochentag sowie das Datum anzeigt – alles auf Deutsch, sofern die passende Locale verfügbar ist. Die Uhrzeit erscheint in großer, grüner Schrift auf schwarzem Hintergrund, während das Datum in etwas kleinerer Schrift darunter folgt. Es gibt keine Knöpfe oder Eingabefelder – die Uhr aktualisiert sich automatisch jede Sekunde und läuft einfach im Hintergrund. Das Fenster ist skalierbar, sodass man es nach Belieben vergrößern oder verkleinern kann. Ideal, wenn man eine schlichte Desktop-Uhr braucht, ohne viel Schnickschnack.

Download des  Python-Skripts und einer ausführbaren Datei für Linux: http://www.janson-soft.de/ubuntu/Python-Digitaluhr.zip

Bildschirmfoto zu 2025 03 29 18 30 11
Einfache Digitaluhr für Linux und auch für Windows, wenn man Python installiert hat.

Funktion: Das Skript nutzt die tkinter-Bibliothek, die in Python standardmäßig enthalten ist, um die grafische Oberfläche zu erstellen. Ein Hauptfenster mit schwarzem Hintergrund dient als Basis, auf dem zwei Labels für Uhrzeit und Datum platziert werden. Die Uhrzeit wird mit `time.strftime` im Format HH:MM:SS abgerufen, während das Datum den vollen Wochentag, Tag, Monat und Jahr anzeigt – etwa „Samstag, 29. März 2025“. Für die deutsche Formatierung wird versucht, die Locale auf `de_DE.UTF-8` oder `deu_deu` zu setzen, wobei das Skript auch ohne diese Einstellung funktioniert, falls sie nicht verfügbar ist. Die Aktualisierung läuft über eine Schleife mit `root.after`, die alle 1000 Millisekunden die Anzeige refreshed – simpel, aber effektiv.

Das Skript: Keine Abhängigkeiten sind notwendig

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


import tkinter as tk
import time
import locale

class DigitalClock:
    def __init__(self, root):
        self.root = root
        self.root.title("Digitaluhr")
        self.root.geometry("1024x500")
        self.root.configure(bg="black")
        self.root.resizable(True, True)
        
        # Setze die Locale für deutsche Wochentagsnamen
        try:
            locale.setlocale(locale.LC_TIME, 'de_DE.UTF-8')  # Für Linux/Mac
        except:
            try:
                locale.setlocale(locale.LC_TIME, 'deu_deu')  # Für Windows
            except:
                pass  # Falls keine deutsche Locale verfügbar ist, Standard benutzen
        
        # Frame für die Uhranzeige
        self.clock_frame = tk.Frame(root, bg="black")
        self.clock_frame.place(relx=0.5, rely=0.5, anchor="center")
        
        # Label für die Uhrzeit
        self.time_label = tk.Label(
            self.clock_frame, 
            font=('Courier', 140, 'bold'),
            bg="black",
            fg="#00ff00"  # Grüne Schrift
        )
        self.time_label.pack()
        
        # Label für Wochentag und Datum
        self.date_label = tk.Label(
            self.clock_frame, 
            font=('Courier', 40),  # Kleinere Schriftgröße
            bg="black",
            fg="#00ff00"  # Grüne Schrift
        )
        self.date_label.pack(pady=(10, 0))  # Etwas Abstand zur Uhrzeit
        
        # Starte die Uhraktualisierung
        self.update_clock()

    def update_clock(self):
        # Aktuelle Zeit abrufen im 24-Stunden-Format (HH:MM:SS)
        current_time = time.strftime("%H:%M:%S")
        
        # Aktuelles Datum mit Wochentag abrufen
        current_date = time.strftime("%A, %d. %B %Y")
        
        # Label-Texte aktualisieren
        self.time_label.config(text=current_time)
        self.date_label.config(text=current_date)
        
        # Aktualisierung alle 1000 ms (1 Sekunde)
        self.root.after(1000, self.update_clock)

if __name__ == "__main__":
    root = tk.Tk()
    app = DigitalClock(root)
    root.mainloop()

Notwendige Abhängigkeiten: Der große Vorteil dieses Projekts ist seine Einfachheit: Es kommt mit reinen Standardbibliotheken aus. Python 3 muss natürlich installiert sein, aber tkinter und die `time`-Bibliothek sind bereits dabei – keine zusätzlichen Installationen nötig. Auch die `locale`-Bibliothek, die für die deutsche Datumsanzeige verwendet wird, ist Teil des Python-Pakets. Das bedeutet: Skript herunterladen, ausführen, fertig. Wer die deutsche Wochentagsanzeige nutzen will, sollte sicherstellen, dass die entsprechende Locale auf dem System verfügbar ist – unter Linux etwa mit `sudo apt-get install language-pack-de`, unter Windows ist sie oft schon vorhanden. Aber selbst ohne das läuft die Uhr einwandfrei.

20250330 091711
Die Uhrzeit immer im Blick.

Fazit: Diese Digitaluhr ist ein tolles Beispiel, wie man mit tkinter eine einfache, aber nützliche GUI basteln kann. Sie zeigt, dass man mit wenigen Zeilen Code etwas Funktionelles hinbekommt, das auch noch gut aussieht – die grüne Schrift auf schwarzem Grund hat fast Retro-Charme. Für Anfänger ist es ein perfekter Einstieg in die GUI-Programmierung, und für alle anderen eine praktische kleine Desktop-Uhr. Wer mag, kann sie leicht anpassen – etwa die Schriftart ändern oder zusätzliche Infos wie die Sekunden seit Mitternacht hinzufügen. Für mich war es ein schnelles Projekt mit einem Ergebnis, das ich tatsächlich nutze.