Wire-Py/new_window_for_add_trace_test.py

46 lines
1.5 KiB
Python

#!/usr/bin/python3
import tkinter as tk
class MainWindow(tk.Tk):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.title("Trace-Test-Window")
self.geometry("400x300")
self.text_label = tk.StringVar()
self.text_forground = tk.StringVar(value="red")
self.text_label.set("This is the main window")
self.label = tk.Label(self, textvariable=self.text_label)
self.label.grid(row=0, column=0, padx=10, pady=10)
self.label.grid_remove()
self.button_text = tk.StringVar()
self.button_text.set("Drück für andere Text anzeige")
self.button = tk.Button(self, textvariable=self.button_text, command=self.toggle_lable)
self.button.grid(row=1, column=0, padx=10, pady=10)
self.text_label.trace_add("write", self.update_label)
self.text_forground.trace_add("write", self.update_label)
def update_label(self, *args):
self.label.configure(foreground=self.text_forground.get())
if self.text_label.get():
self.label.grid()
else:
self.label.grid_remove()
def toggle_lable(self):
if 'main window' in self.text_label.get():
self.text_label.set("gewechseltes label")
self.button_text.set("Drück für main window")
else:
self.text_label.set("This is the main window")
self.button_text.set("Drück für andere Text anzeige")
if __name__ == "__main__":
window = MainWindow()
window.mainloop()