fehlermeldung bei button disable
Verfasst: Mittwoch 15. September 2021, 16:44
Hallo,
ich will einen button in einer Funktion Verändern: den Text und das state.
Dabei erhalte ich folgende Meldung: start_button["state"]="disabled"
TypeError: 'str' object does not support item assignment
Ich denke der start_button ist doch immer ein "str" Objekt wie soll ich das ändern?
ich habe den Code beigefügt:
import tkinter as tk
from functools import partial
def count_call_back(count_label,time_base, counter_value=1):
count_label["text"] = counter_value
count_label.after(int(time_base*1000), count_call_back, count_label,time_base, counter_value + 1)
def start_action(count_label,eingabe,start_button): # Zeitbasis wird erzeugt, Eingabefehler abgefangen
try:
time_base = float(eingabe.get())
except ValueError:
count_label['text'] = "nur Zahlen!"
else:
count_call_back(count_label,time_base)
start_button["state"]="disabled"
start_button["text"]="inaktiv"
def main():
root = tk.Tk()
root.title(" Zeit-Zähler")
root.minsize(width=400, height=300)
count_label = tk.Label(root, fg="green",bg="white",font=("Arial", 22),width=10,height=2)
count_label.pack(padx=10, pady=10)
text_label=tk.Label(root,text=" Zeitbasis > 0.09 Sek. eingeben",fg="blue")
text_label.pack()
eingabe=tk.Entry(root)
eingabe.pack()
start_button=tk.Button(root,text=" Start ",fg="blue",bg="yellow",width=10,command=partial(start_action,count_label,eingabe,start_button="disable"))
start_button.pack(padx=20,pady=45)
ende_button=tk.Button(root, text="Ende", fg="red", bg="white",width=10,height=1, command=root.destroy)
ende_button.pack(padx=20, pady=20)
root.mainloop()
if __name__ == "__main__":
main()
danke für Hilfe
ich will einen button in einer Funktion Verändern: den Text und das state.
Dabei erhalte ich folgende Meldung: start_button["state"]="disabled"
TypeError: 'str' object does not support item assignment
Ich denke der start_button ist doch immer ein "str" Objekt wie soll ich das ändern?
ich habe den Code beigefügt:
import tkinter as tk
from functools import partial
def count_call_back(count_label,time_base, counter_value=1):
count_label["text"] = counter_value
count_label.after(int(time_base*1000), count_call_back, count_label,time_base, counter_value + 1)
def start_action(count_label,eingabe,start_button): # Zeitbasis wird erzeugt, Eingabefehler abgefangen
try:
time_base = float(eingabe.get())
except ValueError:
count_label['text'] = "nur Zahlen!"
else:
count_call_back(count_label,time_base)
start_button["state"]="disabled"
start_button["text"]="inaktiv"
def main():
root = tk.Tk()
root.title(" Zeit-Zähler")
root.minsize(width=400, height=300)
count_label = tk.Label(root, fg="green",bg="white",font=("Arial", 22),width=10,height=2)
count_label.pack(padx=10, pady=10)
text_label=tk.Label(root,text=" Zeitbasis > 0.09 Sek. eingeben",fg="blue")
text_label.pack()
eingabe=tk.Entry(root)
eingabe.pack()
start_button=tk.Button(root,text=" Start ",fg="blue",bg="yellow",width=10,command=partial(start_action,count_label,eingabe,start_button="disable"))
start_button.pack(padx=20,pady=45)
ende_button=tk.Button(root, text="Ende", fg="red", bg="white",width=10,height=1, command=root.destroy)
ende_button.pack(padx=20, pady=20)
root.mainloop()
if __name__ == "__main__":
main()
danke für Hilfe