Label in Tkinter in einer Funktion überschreiben
Verfasst: Mittwoch 14. Juli 2021, 12:50
Grüßt euch,
ich würde gerne ein Programm programmieren, bei dem man aus verschiedenen Formen oder Körpern auswählen kann und dann bestimmte Werte eingibt mit denen dann bspw. der Flächeninhalt berechnet wird. Ich habe mich bereits ein wenig mit Tkinter auseinander gesetzt und habe nun das Problem, dass ich ein Label überschreiben möchte UND auf Knopfdruck die anderen Buttons löschen möchte. Derzeit sieht mein Code wie folgt aus:
from tkinter import *
root = Tk()
root.title("Geometrie Rechner")
e = Label(text="Wähle eine Form oder einen Körper aus")
e.grid(row=0, column=0, columnspan=3, padx=10, pady=10)
def button_click(form_1):
root.title("Viereck")
x
e = Label(text="Wähle ein Viereck aus")
y
return form_1
form_1 = Button(root, text="Viereck", padx=40, pady=20, command=lambda: button_click("Viereck"))
form_2 = Button(root, text="Dreieck", padx=40, pady=20, command=lambda: button_click("Dreieck"))
form_3 = Button(root, text="Kreis", padx=40, pady=20, command=lambda: button_click("Kreis"))
form_4 = Button(root, text="Würfel", padx=40, pady=20, command=lambda: button_click("Würfel"))
form_5 = Button(root, text="Quader", padx=40, pady=20, command=lambda: button_click("Quader"))
form_6 = Button(root, text="Kugel", padx=40, pady=20, command=lambda: button_click("Kugel"))
form_7 = Button(root, text="Zylinder", padx=40, pady=20, command=lambda: button_click("Zylinder"))
form_8 = Button(root, text="Pyramide", padx=40, pady=20, command=lambda: button_click("Pyramide"))
form_9 = Button(root, text="Kegel", padx=40, pady=20, command=lambda: button_click("Kegel"))
form_1.grid(row=1, column=0)
form_2.grid(row=1, column=1)
form_3.grid(row=1, column=2)
form_4.grid(row=2, column=0)
form_5.grid(row=2, column=1)
form_6.grid(row=2, column=2)
form_7.grid(row=3, column=0)
form_8.grid(row=3, column=1)
form_9.grid(row=3, column=2)
root.mainloop()
In die Zeile die ich mit x markiert habe müsste jetzt eine Funktion die das alte Label löscht (also "text="Wähle eine Form oder einen Körper aus").
Und die Zeile die ich mit y markiert habe müsste jetzt ein Befehl, der die anderen Buttons löscht, sodass man sozusagen das gleiche Fenster hat nur leer und mit Viereck als Überschrift.
Diese Funktion würde ich dann für jede Form bzw. Körper kopieren.
Ich hoffe, dass ich mich nicht allzu verwirrend ausgedrückt habe ^^
Vielleicht kann ja einer von euch helfen. Vielen Dank
ich würde gerne ein Programm programmieren, bei dem man aus verschiedenen Formen oder Körpern auswählen kann und dann bestimmte Werte eingibt mit denen dann bspw. der Flächeninhalt berechnet wird. Ich habe mich bereits ein wenig mit Tkinter auseinander gesetzt und habe nun das Problem, dass ich ein Label überschreiben möchte UND auf Knopfdruck die anderen Buttons löschen möchte. Derzeit sieht mein Code wie folgt aus:
from tkinter import *
root = Tk()
root.title("Geometrie Rechner")
e = Label(text="Wähle eine Form oder einen Körper aus")
e.grid(row=0, column=0, columnspan=3, padx=10, pady=10)
def button_click(form_1):
root.title("Viereck")
x
e = Label(text="Wähle ein Viereck aus")
y
return form_1
form_1 = Button(root, text="Viereck", padx=40, pady=20, command=lambda: button_click("Viereck"))
form_2 = Button(root, text="Dreieck", padx=40, pady=20, command=lambda: button_click("Dreieck"))
form_3 = Button(root, text="Kreis", padx=40, pady=20, command=lambda: button_click("Kreis"))
form_4 = Button(root, text="Würfel", padx=40, pady=20, command=lambda: button_click("Würfel"))
form_5 = Button(root, text="Quader", padx=40, pady=20, command=lambda: button_click("Quader"))
form_6 = Button(root, text="Kugel", padx=40, pady=20, command=lambda: button_click("Kugel"))
form_7 = Button(root, text="Zylinder", padx=40, pady=20, command=lambda: button_click("Zylinder"))
form_8 = Button(root, text="Pyramide", padx=40, pady=20, command=lambda: button_click("Pyramide"))
form_9 = Button(root, text="Kegel", padx=40, pady=20, command=lambda: button_click("Kegel"))
form_1.grid(row=1, column=0)
form_2.grid(row=1, column=1)
form_3.grid(row=1, column=2)
form_4.grid(row=2, column=0)
form_5.grid(row=2, column=1)
form_6.grid(row=2, column=2)
form_7.grid(row=3, column=0)
form_8.grid(row=3, column=1)
form_9.grid(row=3, column=2)
root.mainloop()
In die Zeile die ich mit x markiert habe müsste jetzt eine Funktion die das alte Label löscht (also "text="Wähle eine Form oder einen Körper aus").
Und die Zeile die ich mit y markiert habe müsste jetzt ein Befehl, der die anderen Buttons löscht, sodass man sozusagen das gleiche Fenster hat nur leer und mit Viereck als Überschrift.
Diese Funktion würde ich dann für jede Form bzw. Körper kopieren.
Ich hoffe, dass ich mich nicht allzu verwirrend ausgedrückt habe ^^
Vielleicht kann ja einer von euch helfen. Vielen Dank