Seite 1 von 1

Uhrzeit Clock Datum Wochentag als Gadget für Windows 11 mit Python

Verfasst: 17.09.2025, 20:51
von Holgi
bezugnehmend auf diesen Beitrag hier:
viewtopic.php?t=33522&start=15
noch mal ein Gadget für Uhrzeit Clock Datum Wochentag:
Clock_Date.pyw

Code: Alles auswählen

import tkinter as tk
import time
import sys
import locale

# Locale einstellen für deutschen Wochentag/Monat
locale.setlocale(locale.LC_TIME, "de_DE.utf8")

class UhrenWidget:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title("Uhr Widget")
        self.root.configure(bg='#2b2b2b')
        self.root.attributes('-topmost', True)  # Immer im Vordergrund
        self.root.overrideredirect(True)        # Entfernt Titelleiste
        self.root.resizable(False, False)

        # Fensterposition (oben rechts)
        self.root.geometry("+%d+%d" % (self.root.winfo_screenwidth() - 220, 50))

        # Titel-Leiste
        title_bar = tk.Frame(self.root, bg='#3b3b3b', relief='raised', bd=0)
        title_bar.pack(fill=tk.X)

        title_label = tk.Label(title_bar, text="Uhr", bg='#3b3b3b', fg='white')
        title_label.pack(side=tk.LEFT, padx=5, pady=2)

        close_button = tk.Button(
            title_bar, text="×", command=self.schliessen,
            bg='#3b3b3b', fg='white', bd=0, font=("Arial", 12),
            activebackground='#ff5555', activeforeground='white'
        )
        close_button.pack(side=tk.RIGHT, padx=2, pady=0)

        # Uhrzeit-Anzeige
        self.uhr_label = tk.Label(
            self.root, text="", font=("Arial", 24, "bold"),
            fg="#00ffaa", bg="#2b2b2b", pady=10
        )
        self.uhr_label.pack(fill=tk.X, padx=10)

        # Datum-Anzeige
        self.datum_label = tk.Label(
            self.root, text="", font=("Arial", 14),
            fg="white", bg="#2b2b2b", pady=5
        )
        self.datum_label.pack(fill=tk.X, padx=10)

        # Variablen für Ziehen
        self.x = 0
        self.y = 0

        # Ziehen ermöglichen
        title_bar.bind("<ButtonPress-1>", self.start_ziehen)
        title_bar.bind("<B1-Motion>", self.ziehen)

        # Update starten
        self.aktualisiere()

        self.root.mainloop()

    def start_ziehen(self, event):
        self.x = event.x
        self.y = event.y

    def ziehen(self, event):
        deltax = event.x - self.x
        deltay = event.y - self.y
        x = self.root.winfo_x() + deltax
        y = self.root.winfo_y() + deltay
        self.root.geometry(f"+{x}+{y}")

    def schliessen(self):
        self.root.destroy()
        sys.exit()

    def aktualisiere(self):
        # Uhrzeit
        zeit_string = time.strftime("%H:%M:%S")
        self.uhr_label.config(text=zeit_string)

        # Datum: Wochentag, Tag. Monat Jahr
        datum_string = time.strftime("%A, %d. %B %Y")
        self.datum_label.config(text=datum_string)

        # Alle 1 Sekunde aktualisieren
        self.root.after(1000, self.aktualisiere)


# Starten
if __name__ == "__main__":
    UhrenWidget()
sieht so aus:
Clock_Date.JPG
Viel Spaß