⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ IntVar
tkinter.IntVar ( ).trace_add ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ IntVar
tkinter.IntVar ( ).trace_add ( )
DESCRIPTION.
Indique une fonction à exécuter quand la variable de controle de type tkinter.IntVar ( ) est lue, modifiée ou détruite et place un observateur sur cette variable.
SYNTAXE.
TKV_Entier.trace_add ( action , fonction )
TKV_Entier ⇨ instance quelconque de tkinter.IntVar ( ) [ OBLIGATOIRE ]
.trace_add ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
action ⇨ événement à surveiller [ OBLIGATOIRE ]
fonction ⇨ fonction à exécuter [ OBLIGATOIRE ]
TKV_Entier.trace_variable ( action , fonction )
TKV_Entier ⇨ instance quelconque de tkinter.IntVar ( ) [ OBLIGATOIRE ]
.trace_variable ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
action ⇨ événement à surveiller [ OBLIGATOIRE ]
fonction ⇨ fonction à exécuter [ OBLIGATOIRE ]
REMARQUES.
Avec la méthode tkinter.IntVar ( ).trace_add ( ), action doit est un str ( ) qui peut prendre l'une des valeurs suivantes :
- "read", pour exécuter fonction quand la variable de controle est lue ;
- "write", pour exécuter fonction quand la variable de controle est modifiée ;
- "unset", pour exécuter fonction quand la variable de controle est détruite.
Avec la méthode tkinter.IntVar ( ).trace_variable ( ), action doit est un str ( ) qui peut prendre l'une des valeurs suivantes :
- "r", pour exécuter fonction quand la variable de controle est lue ;
- "w", pour exécuter fonction quand la variable de controle est modifiée ;
- "u", pour exécuter fonction quand la variable de controle est détruite.
fonction doit être une fonction, quelconque mais valide, définie par le script, ou une méthode native de Python ou importée d'un module. Le nom de la fonction appelée, ne doit pas être suivie des parenthèses.
La méthode tkinter.IntVar ( ).trace_add ( ) permettra de suspendre la surveillance d'un événement sur la variable de controle liée, avec la méthode tkinter.IntVar ( ).trace_remove ( ), contrairement à tkinter.IntVar ( ).trace ( ). qui appliquera une surveillance définitive.
La méthode tkinter.IntVar ( ).trace_variable ( ) ne doit plus être utilisée depuis Python 3.5, sa présence dans la liste de méthodes de tkinter permet juste la compatibilité des anciens scripts.
Pour surveiller plusieurs événements, liés à une même variable de controle, devant appeler la même fonction fonction. il est possible de regrouper plusieurs actions dans une list ( ) ou un tuple ( ). Par exemple : [ "write" , "read" ] ou ( "write" , "read" , "unset" ).
tkinter.IntVar ( ).trace_add ( ) passent, automatiquement, un tuple ( ) de 3 éléments à la fonction appelée : l'identifiant de la variable de controle (ex. : PY_VAR0) ; un str ( ) vide et la nature de l'événement qui déclenchée l'appel ("write", "read" ou "unset"). La définition de la fonction fonction, doit donc prévoir ce passage d'argument.
EXEMPLE.
import tkinter
def FNC_Fond ( *event ) :
kcouleurs = [ "red" , "lime" , "blue" , "yellow" , "aqua" , "magenta" , "white" ]
kindex = kcouleurs.index ( TKI_Principal [ "background" ] ) + 1
if kindex > 6 : kindex = 0
TKI_Principal [ "background" ] = kcouleurs [ kindex ]
TKI_Principal = tkinter.Tk ( )
TKI_Principal [ "background" ] = "white"
TKV_Test = tkinter.IntVar ( )
tkinter.Label ( TKI_Principal , textvariable = TKV_Test ).pack ( )
tkinter.Button ( TKI_Principal , text = "+ 1" , command = lambda : TKV_Test.set ( TKV_Test.get ( ) + 1 ) ).pack ( )
tkinter.Button ( TKI_Principal , text = "- 1" , command = lambda : TKV_Test.set ( TKV_Test.get ( ) - 1 ) ).pack ( )
tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy ).pack ( )
trace_add ( "write" , FNC_Fond )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de