¿Tipo de evento de cambio de valor para widgets o uso de la técnica .trace_variable ()?

¿Existe un tipo de evento de cambio de valor para los widgets de entrada de datos como Entrada, Texto, Spinner, Botón de control, Botón de radio? Por cambio de valor, me refiero a la capacidad de detectar cuando el valor de un widget ha cambiado debido a la entrada del teclado o la actividad de cortar / eliminar / pegar (y Texto edit_undo / edit_redo)? No veo tal evento descrito en la documentación del evento Tkinter [1].

¿Es la técnica adecuada para vincular las variables de Tkinter a los valores de los widgets que quiero monitorear y usar los métodos de estas variables ‘.trace_variable (‘ w ‘, …) para enlazar a los cambios de valor? Este parece ser el enfoque correcto, pero no he visto un montón de uso de trace_variable () en el código fuente de la aplicación Tkinter que he estudiado … lo que me lleva a ser cauteloso al usar este enfoque.

[1] http://infohost.nmt.edu/tcc/help/pubs/tkinter/events.html

Diferentes widgets requieren diferentes soluciones. Por ejemplo, los botones de verificación y los botones de opción tienen una opción de comando, y con un widget de entrada puede usar las funciones de validación integradas.

Para todos los widgets que se pueden vincular a una variable, hacer una traza variable es una solución común. El widget de texto es una excepción, ya que no se puede asociar con una variable sin mucho esfuerzo.

En el mundo tcl / tk asocio todos mis widgets a una única matriz (nombre de tcl para un mapa / diccionario hash) y luego pongo una única traza en la matriz. Desafortunadamente tkinter no soporta directamente los arreglos tcl. Sin embargo, el soporte es algo fácil de piratear. Para obtener más información, vea mi respuesta a esta pregunta: ¿Cómo ejecutar un código cada vez que cambia el valor del widget Tkinter?