⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ BooleanVar
tkinter.BooleanVar ( ).trace ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ BooleanVar
tkinter.BooleanVar ( ).trace ( )
DESCRIPTION.
Indique une fonction à exécuter quand la variable de controle de type tkinter.BooleanVar ( ) est lue, modifiée ou détruite.
SYNTAXE.
TKV_Bool.trace ( action , fonction )
TKV_Bool ⇨ instance quelconque de tkinter.BooleanVar ( ) [ OBLIGATOIRE ]
.trace ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
action ⇨ événement à surveiller [ OBLIGATOIRE ]
fonction ⇨ fonction à exécuter [ OBLIGATOIRE ]
REMARQUES.
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.
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 : [ "w" , "r" ] ou ( "w" , "r" , "u" ).
La méthode tkinter.BooleanVar ( ).trace ( ) appliquera une surveillance définitive, contrairement à la méthode tkinter.BooleanVar ( ).trace_add ( ) qui permettra de suspendre la surveillance d'un événement sur la variable de controle liée, avec la méthode tkinter.BooleanVar ( ).trace_remove ( ).
La méthode tkinter.BooleanVar ( ).trace ( ) passe, 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 ("w", "r" ou "u"). La définition de la fonction fonction, doit donc prévoir ce passage d'argument.
EXEMPLE.
import tkinter
def FNC_Affichage ( ) :
LAB_Affichage [ "text" ] = TKV_Test.get ( )
def FNC_Effacer ( ) :
LAB_Message [ "text" ] = ""
def FNC_Message ( *event ) :
LAB_Message [ "text" ] = "La case a été modifiée."
TKI_Principal.after ( 750 , FNC_Effacer )
TKI_Principal = tkinter.Tk ( )
TKV_Test = tkinter.BooleanVar ( )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
CKB_Test = tkinter.Checkbutton ( TKI_Principal , onvalue = 1 , offvalue = 0 , text = "test" , variable = TKV_Test , command = FNC_Affichage )
LAB_Affichage = tkinter.Label ( TKI_Principal , text = "" )
LAB_Message = tkinter.Label ( TKI_Principal , text = "" )
LAB_Message.pack ( )
LAB_Affichage.pack ( )
CKB_Test.pack ( )
BUT_Quitter.pack ( )
TKV_Test.trace ( "w" , FNC_Message )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de