Uhrzeit nach Fensterwechsel anzeigen
Verfasst: Dienstag 1. Januar 2019, 15:05
hallo,
ich versuche seit längerem schon die, am anfang vorhandene uhr- und datumsanzeige, nach (jedem) fensterwechsel wieder im startfenster anzeigen zu lassen.
leider gelingt es mir nicht, so daß ich mal hier nachfragen wollte, bevor ich den rechner noch kaputt hau 
habe zu letzt versucht, das irgendwie mit der .bind-methode zu lösen (self.footer.bind("<Enter>", self.start_clock)),
leider funktioniert bisher keine meiner ideen
ich versuche seit längerem schon die, am anfang vorhandene uhr- und datumsanzeige, nach (jedem) fensterwechsel wieder im startfenster anzeigen zu lassen.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# from __future__ import absolute_import, division, print_function
import tkinter as tk
import os
import time
from threading import Thread, Event
class Clock:
@staticmethod
def update_clock():
now = time.strftime("%H:%M:%S\n%d. %B %Y")
return now
class Start_Page(Clock):
def __init__(self, master):
Clock.__init__(self)
self.master = master
self.master.state('zoomed')
self.master.overrideredirect(True)
self.master.resizable(False, False)
self.master.columnconfigure(0, weight=2)
self.master.iconbitmap(default='logo_piepenbrock.ico')
###########
# FOOTER
###########
self.footer = tk.Frame(self.master, height=35, bg="Gray")
self.footer.pack_propagate(False)
self.footer.pack(side=tk.BOTTOM, fill=tk.X)
self.footer.bind("<Enter>", self.start_clock)
# LABEL: CLOCK - FOOTER
self.clock_var = tk.StringVar()
self.label_clock = tk.Label(self.footer, textvariable=self.clock_var, font=("Arial", 9, 'bold'), bg="Grey")
self.label_clock.pack(side=tk.RIGHT, padx=10)
self.work = Thread(target=self.start_clock)
self.work.start()
###########
# MIDDLE
###########
self.middle = tk.Frame(self.master)
self.middle.pack(side=tk.BOTTOM)
# BOTTOM: NEW_WINDOW - FOOTER
self.new_window = tk.Button(self.middle, text='New Window', width=15, command=self.new_window)
self.new_window.pack(pady=5)
# BUTTON: CLOSE - FOOTER
self.close = tk.Button(self.middle, text='Close', width=15)
self.close.pack(pady=20)
self.close.bind("<Button-1>", self.exit_program)
def start_clock(self):
while True:
self.clock_var.set(self.update_clock())
def frame_mapped(self, event):
self.master.update_idletasks()
self.master.overrideredirect(True)
self.master.state('zoomed')
def new_window(self):
self.master.overrideredirect(False)
self.master.iconify()
new_window = tk.Toplevel(self.master)
Page_1(new_window)
def exit_program(self, event):
os._exit(0)
class Page_1(Clock):
def __init__(self, master):
self.master = master
self.master.state('zoomed')
self.master.overrideredirect(True)
self.master.resizable(False, False)
# HEADER
self.header = tk.Frame(self.master, height=35, bg="Gray")
self.header.pack_propagate(False)
self.header.pack(side=tk.TOP, fill=tk.X)
# FOOTER
self.footer = tk.Frame(self.master, height=35, bg="Gray")
self.footer.pack_propagate(False)
self.footer.pack(side=tk.BOTTOM, fill=tk.X)
# BUTTONS
self.frame = tk.Frame(self.master)
self.frame.pack(side=tk.BOTTOM, pady=20)
self.quitButton = tk.Button(self.frame, text='Back', width=15, command=self.close_windows)
self.quitButton.pack(pady=20)
def close_windows(self):
self.master.destroy()
second = tk.Tk()
Start_Page(second)
def main():
root = tk.Tk()
Start_Page(root)
root.mainloop()
if __name__ == '__main__':
main()

habe zu letzt versucht, das irgendwie mit der .bind-methode zu lösen (self.footer.bind("<Enter>", self.start_clock)),
leider funktioniert bisher keine meiner ideen
