from tkinter import *
root = Tk()
root.title("Test")
day = 1
def next_day():
label1["text"]+= 1
button1 = Button(root,text="next day",command=lambda: (next_day)).grid(row=0,column=0)
label1 = Label(root,text=tag).grid(row=1,column=0)
root.mainloop()
Warum geht es nicht den tag um 1 zu erhöhen, wenn ich auf den next day button klicke passiert nichts?
GUI - Anfänger Frage
Hallo,
zu was das 'lambda' ? Selbst wenn beim klicken des Buttons die Funktion 'next_day' aufgerufen wird Dann kannst du einen nicht definierten Namen nicht einfach um eins erhöhen. 'label1' ist in der Funktion 'next_day' nicht das gleiche wie in dein "anderes" 'label1'. Du musst dich mit dein Einrückungen und entstehenden Namensräumen vertraut machen. 'tag' in 'label1 = Label(root, text=tag)' ist auch nicht definiert.
Wenn du so etwas machen willst, dann bietet sich objektorienterte Programmierung an. Da kannst du den Namen an 'self' binden und wieder darauf zugreifen. Arbeite am besten mal das offizielle Python-Tutorial durch:
https://docs.python.org/3/tutorial/
Grüße
Dennis
zu was das 'lambda' ? Selbst wenn beim klicken des Buttons die Funktion 'next_day' aufgerufen wird Dann kannst du einen nicht definierten Namen nicht einfach um eins erhöhen. 'label1' ist in der Funktion 'next_day' nicht das gleiche wie in dein "anderes" 'label1'. Du musst dich mit dein Einrückungen und entstehenden Namensräumen vertraut machen. 'tag' in 'label1 = Label(root, text=tag)' ist auch nicht definiert.
Wenn du so etwas machen willst, dann bietet sich objektorienterte Programmierung an. Da kannst du den Namen an 'self' binden und wieder darauf zugreifen. Arbeite am besten mal das offizielle Python-Tutorial durch:
https://docs.python.org/3/tutorial/
Code: Alles auswählen
#!/usr/bin/env python3
import tkinter as tk
class App(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
self.day = 1
tk.Button(self, text='Update Day', command=self.update_day).grid(row=0, column=0)
self.day_label = tk.Label(self,text=self.day)
self.day_label.grid(row=1, column=0)
def update_day(self):
self.day += 1
self.day_label.configure(text=self.day)
def main():
root = tk.Tk()
root.title('Days')
app = App(root)
app.pack()
app.mainloop()
if __name__ == "__main__":
main()
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]