Tkinter: establece StringVar después del evento <Key>, incluida la tecla presionada

Cada vez que un personaje entra en unText Widget, quiero obtener el contenido de ese widget y restar su longitud de un número determinado (básicamente, una oferta de "tienes x caracteres restantes").

Pero elStringVar() Siempre hay un evento detrás. Esto es, de lo que recojo, porque el evento se procesa antes de que el carácter se ingrese en el widget Texto. Esto significa que si tengo 3 caracteres en el campo y escribo un 4to, elStringVar se actualiza pero aún tiene 3 caracteres, luego se actualiza a 4 cuando ingreso un quinto carácter.

¿Hay alguna manera de mantener a los dos en línea?

Aquí hay un código. Quité las partes irrelevantes.

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))

Respuestas a la pregunta(2)

Su respuesta a la pregunta