Reputation: 13
Consider the code below:
from tkinter import *
screen = Tk()
e =Entry()
e.pack()
screen.mainloop()
Now how to get to display the length of the characters entered in the e
entry widget in real-time? It doesn't matter if the data is displayed in the GUI or Corresponding terminal
Upvotes: 0
Views: 1781
Reputation: 15088
There are atleast 3 ways to do this here with one being better than the other:
trace
from StringVar
:def func(*args):
print(len(var.get()))
var = StringVar()
e = Entry(screen,textvariable=var)
e.pack()
var.trace('w',func)
Every time the value of var
is changed, func
will be called.
bind
to each key release:def func(*args):
print(len(e.get()))
e.bind('<KeyRelease>',func)
after(ms,func)
to keep repeating the function:def func():
print(len(e.get()))
screen.after(500,func)
func()
As you can see, the first method is more efficient as it does not unnecessarily prints out values when you select all the items(with Ctrl+A) and so on. Using after()
will be the most ridiculous method as it will keep printing the length always as there are no restrictions provided.
Upvotes: 2