Tkinter: установить StringVar после события <Key>, включая нажатую клавишу
Каждый раз, когда персонаж вводится вText
widget, я хочу получить содержимое этого виджета и вычесть его длину из определенного числа (в основном сделка «у вас есть x символов»).
НоStringVar()
всегда одно событие позади. Это то, что я понял, потому что событие обрабатывается до того, как символ вводится в виджет Текст. Это означает, что если у меня есть 3 символа в поле, и я ввожу 4-й,StringVar
обновляется, но все еще имеет длину 3 символа, затем он обновляется до 4 при вводе 5-го символа
Есть ли способ сохранить эти два в линии?
Вот код Я удалил не относящиеся к делу части.
def __init__(self, master):
self.char_count = StringVar()
self.char_count.set("140 chars left")
self.post_tweet = Text(self.master)
self.post_tweet.bind("<Key>", self.count)
self.post_tweet.grid(...)
self.char_count = Label(self.master, textvariable=self.foo)
self.char_count.grid(...)
def count(self):
self.x = len(self.post_tweet.get(1.0, END))
self.char_count.set(str(140 - self.x))