Seite 1 von 1

Label automatisch updaten

Verfasst: Dienstag 23. Januar 2018, 19:28
von Nachbar
Hallo Zusammen,

bin Anfänger und habe eine kleine GUI-Anwendung, in der ich innerhalb eines Labels gerne sichtbar mitzählen lassen will, wenn in einer Textbox Zeichen entfernt oder hinzugefügt werden.

Es gibt einen Button, der eine Funktion aufruft. Diese Funktion füllt eine Textbox mit einem String. Neben der Textbox gibt es ein Label, dass die Anzahl der Chars aus der Textbox ausgibt, alles passiert in der Funktion:

Code: Alles auswählen

# Anzahl in Label ausgeben
var = tk.StringVar()   
var.set(str(len(nachricht.get("1.0", 'end-1c'))))
lbl_anzahl = tk.Label(fenster, textvariable=var, font=('Arial',10))
Gibt es nun irgendeine Möglichkeit, mit jedem Char dass ich in der Textbox per backspace entferne, gleichzeitig das Label "mitzählen", also die jeweils veränderte Anzahl an Zeichen anzeigen zu lassen?

Re: Label automatisch updaten

Verfasst: Dienstag 23. Januar 2018, 19:52
von Sirius3
@Nachbar: `trace` ist Dein Freund:

Code: Alles auswählen

import tkinter as tk

root = tk.Tk()
var = tk.StringVar()
var.trace('w', lambda *args: var_len.set(len(var.get())))
var_len = tk.IntVar()

tk.Entry(root, textvar=var).pack()
tk.Label(root, textvar=var_len).pack()
root.mainloop()

Re: Label automatisch updaten

Verfasst: Freitag 26. Januar 2018, 17:38
von Nachbar
Vielen Dank! Hat etwas gedauert bis ich es hinbekommen habe, weil ich mit lamda noch nichts gemacht, und es deshalb "auseinader gedröselt" habe. Aber funktioniert. :)