Domanda

C'è un tipo on-value-change di evento per i widget di input dati come voce, testo, Spinner, checkbutton, Radiobutton? Con il valore di cambio, voglio dire la capacità di rilevare quando il valore di un widget è cambiato a causa di input da tastiera o taglio / cancellazione / incolla (e Testo edit_undo / edit_redo) attività? Non vedo tale evento descritto nella documentazione dell'evento Tkinter [1].

E 'la tecnica corretta per variabili collegamento Tkinter al widget di valori che voglio monitorare e utilizzare queste variabili .trace_variable ( 'w', ...) i metodi di legarsi alle variazioni del valore? Questo mi sembra il giusto approccio, ma non ho visto un sacco di trace_variable () l'uso nel codice sorgente dell'applicazione Tkinter che ho studiato ... portandomi a essere cauti sull'utilizzo di questo metodo.

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

È stato utile?

Soluzione

Diverse widget richiedono soluzioni diverse. Ad esempio, i pulsanti di controllo e pulsanti di opzione hanno un'opzione di comando, e con una voce widget di è possibile utilizzare le funzionalità di convalida incorporate.

Per tutti i widget che possono essere legati ad una variabile, facendo una traccia variabile è una soluzione comune. Il widget di testo è un'eccezione in quanto non è possibile associarlo a una variabile senza un grande sforzo.

Nel Tcl / Tk mondo associo tutti i miei widget ad un singolo array (nome di TCL per un hash mappa / dizionario) e poi mettere una singola traccia sulla matrice. Purtroppo tkinter non supporta direttamente Tcl array. Tuttavia, il supporto è un po 'facile da incidere in Per ulteriori informazioni vedere la mia risposta a questa domanda:. Come eseguire un codice ogni volta che un Tkinter widget di variazioni di valore?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top