bin noch relativ neu bei Python und auch bei tkinter (habe bisher hauptsächlich mit Delphi programmiert).
Vielleicht liegt es daran, dass ich nicht die richtigen Suchworte eingebe, vielleicht hab ich auch ansonsten ein Verständnisproblem oder sehe den Wald vor lauter Bäumen nicht.
Ich habe ein kleines Programm geschrieben, das ein tkinter.Text enthält. Darunter möchte ich ein Label setzen, das immer die Anzahl der Zeichen im Text anzeigt.
Text ist da, Label ist da. Funktioniert auch beides (Text ändern, Text abfragen, Textlänge bestimmen, Textlänge ins Label schreiben).
Im Moment mache ich das per Knopf, aber eigentlich hätte ich das gerne "live".
Nur wie bekomme ich mit, wenn sich am Inhalt des Text etwas ändert?
Auch akzeptabel wäre es, wenn ich zumindest den Fokusverlust des Textfeldes mitbekäme, aber auch da bin ich offenbar zu dusselig, um eine hilfreiche Suchanfrage zu formulieren.
(Bei Delphi gibt es "onChange" und sowas, vermutlich hänge ich noch zu sehr an diesem System, um die richtigen Suchanfragen einzugeben. Bitte um Verzeihung!)
Danke für alle Hinweise!
Tonteria
Hier mein Minimal-Beispiel:
Code: Alles auswählen
import tkinter as tk
root = tk.Tk()
mytext = tk.Text(root,width=20,height=10)
mytext.pack(side=tk.TOP,expand=True,fill=tk.BOTH)
mylabel = tk.Label(text= "Number of signs: ??" )
mylabel.pack(side=tk.TOP,expand=True,fill=tk.X)
def countsigns():
atext = mytext.get(1.0,tk.END)
nsigns = len(atext)
mylabel.config(text="Number of signs: " + str(nsigns))
countsigns()
mybutton = tk.Button(text="Count",command=countsigns)
mybutton.pack(side=tk.TOP,expand=True,fill=tk.X)
root.mainloop()