⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Text
tkinter.Text ( ).tag_bind ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards ⇨ Text
tkinter.Text ( ).tag_bind ( )
DESCRIPTION.
Lie un gestionnaire d'événement aux portions du contenu d'un éditeur de texte associé à un style de formatage.
SYNTAXE.
TXT_Editeur.tag_bind ( format , evenement , fonction , ajout )
TXT_Editeur ⇨ instance quelconque de tkinter.Text ( ) [ OBLIGATOIRE ]
.tag_bind ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
format ⇨ style de formatage à lié à l'événement [ OBLIGATOIRE ]
evenement ⇨ événement à surveiller [ OBLIGATOIRE ]
fonction ⇨ fonction à exécuter [ OBLIGATOIRE ]
ajout ⇨ indique si le format reçoit plusieurs événements [ optionnel ]
REMARQUES.
format est un str ( ) correspondant à un nom valide de formatage qui sera sensible à evenement.
evenement doit être écrit en suivant une syntaxe, stricte, précise et invariable selon l’événement que l'on souhaite associer au formatage. Seuls événements liés à la souris (Enter, Leave, Motion, Button, ...), au clavier (Key, ...) et les événements virtuels peuvent être utilisés. Cependant, un événement virtuel ne sera déclenché que s'il fait référence à des événements liés à la souris et/ou au clavier. Attention : les événements "<Enter>" et "<Leave>" peuvent se produire parce que l'élément sous le pointeur c'est déplacé, suite à une modification du contenu. voir gestion des évenements
fonction doit être une fonction, quelconque mais valide. Le nom de la fonction appelée, ne doit pas être suivie des parenthèses car aucun argument ne peut être passé lors de l'appel de la fonction. Rappel : tkinter passe un objet tkinter.Event ( ) comme argument à la fonction à exécuter, qui devra donc le prévoir dans sa définition. Toutefois, si des valeurs doivent être fournis pour le traitement correct de la fonction appelée, fonction pourra être une fonction anonyme créée avec l'instruction lambda.
Si une portion du contenu est associé à plusieurs formatages liés à des d'événements, l'appel des fonctions se fera dans l'ordre du formatage le plus bas dans la pile des priorités au formatage ayant la plus forte priorité. Si un formatage est lié à plusieurs événements c'est l'événement plus spécifique qui est choisi. Si l'éditeur de texte est lui même lié par le même événement avec la méthode tkinter.bind ( ), la fonction d'appel du formatage sera exécutée avant celle de l'éditeur de texte, suivi éventuellement de celles des conteneurs : cadres, fenêtres.
L'attribut ajout doit être add = "+" pour préserver les anciennes liaisons. S'il est absent, le ou les liens créés précédemment sur ce formatge sont détruits. Si add = "+" est présent, le formatage peut alors être sollicité par plusieurs événements et y répondre, de façon identique, ou différentes, selon le script.
Voir aussi : les événements dans tkinter et la classe tkinter.Events ( ) pour des informations détaillées sur la gestion des événements dans tkinter.
EXEMPLE.
import tkinter
def FNC_Couleur ( Q ) :
TXT_Test.tag_raise ( Q )
TXT_Test.tag_add ( Q , "1.0" , "1.end" )
TXT_Test.tag_add ( Q , "5.0" , "end" )
def FNC_Liaison ( ) :
if "Activer" in BUT_Lier [ "text" ] :
BUT_Lier [ "text" ] = "Désactiver les liaisons."
TXT_Test.tag_bind ( "bleu" , "<ButtonRelease>" , lambda event : FNC_Couleur ( "bleu" ) )
TXT_Test.tag_bind ( "rouge" , "<ButtonRelease>" , lambda event : FNC_Couleur ( "rouge" ) )
TXT_Test.tag_bind ( "vert" , "<ButtonRelease>" , lambda event : FNC_Couleur ( "vert" ) )
TXT_Test.insert ( "end" , "Gestionnaires de liaison activés...\n" , "vert" )
else :
BUT_Lier [ "text" ] = "Activer les liaisons."
TXT_Test.tag_unbind ( "bleu" , "<ButtonRelease>" )
TXT_Test.tag_unbind ( "rouge" , "<ButtonRelease>" )
TXT_Test.tag_unbind ( "vert" , "<ButtonRelease>" )
TXT_Test.insert ( "end" , "Gestionnaires de liaison déactivés...\n" , "rouge" )
TKI_Principal = tkinter.Tk ( )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
BUT_Lier = tkinter.Button ( TKI_Principal , text = "Activer les liaisons." , command = FNC_Liaison )
TXT_Test = tkinter.Text ( TKI_Principal , wrap = "word" , width = 40 , height = 12 )
TXT_Test.pack ( )
BUT_Lier.pack ( fill = "both" )
BUT_Quitter.pack ( fill = "both" )
TXT_Test.tag_config ( "bleu" , foreground = "blue" , background = "aqua" )
TXT_Test.tag_config ( "rouge" , foreground = "red" , background = "pink" )
TXT_Test.tag_config ( "vert" , foreground = "green" , background = "palegreen" )
TXT_Test.insert ( "1.0" , "Cliquez pour mettre le texte en :\n\n" )
TXT_Test.insert ( "end" , "[ bleu ]" , "bleu" , "[ rouge ]" , "rouge" , "[ vert ]" , "vert" , "...\n\n" )
TXT_Test.insert ( "end" , "Tapez votre texte à partir d'ici ...\n\n" )
FNC_Liaison ( )
TXT_Test.focus_force ( )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de