⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards
tkinter.Events ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ controles standards
tkinter.Events ( )
DEFINITION.
Objet retourné chaque fois que le gestionnaire d'événement est activé par le déclenchement d'une action attendu.
REMARQUES.
Cet objet est transmis, comme unique attribut, à la fonction, ou méthode, assignée, par le script comme, action à exécuter avec l'utilisation des méthodes tkinter.bind ( ), tkinter.bind_class ( ) et tkinter.bind_all ( ). Cet objet est composé de champs nommés, recevant une valeur décrivant l'état, et/ou les circonstances, dans lequel se trouvait l'attribut attaché au champ au moment de l'événement. Certains de ces champs auront toujours une valeur, d'autres en auront une selon le type d'événement déclencheur.
Par convention, on le nomme event, even, ou e. Ce nom est celui de l'argument passé la fonction. Par contre les noms des attributs sont invariables.
Il n'est pas possible de passer d'attribut lors de l'appel de la fonction suite, au déclenchement d'un événement. Si le programme doit agir d'une façon similaire avec plusieurs controles, mais avec des options différentes suivant le controle sollicité, vous devez :
- soit créer des fonctions différentes qui seront appelées par un unique controle ;
- soit créer une fonction commune qui analysera l'objet event pour déterminer le contrôle appelant, en utilisant une variable globale avec la méthode tkinter.bindtags ( ).
- soit, préférablement, passer l'appel avec une fonction anonyme en utilisant l'instruction lambda.
Voir aussi "les événements dans tkinter" pour plus de détails sur le événement surveillés par le gestionnaire.
LISTE DES ATTRIBUTS DE L'OBJET EVENT.
event.char (événements : KeyPress, Key, KeyRelease)
Contient un str ( ) de 1 caractère, correspondant à la touche enfoncée ou relachée, si celle-ci est un code ASCII régulier. Pour les touches spéciales se référer à l'attribut event.keysym.
event.delta (événement : MouseWheel)
Contient un int ( ) représentant le défilement de la molette de la souris. Il est positif pour des mouvement de molette vers le haut ou négatif si le mouvement est fait vers le bas. Sous Windows, cette valeur est un multiple de 120, correspondant au nombre d'étape durant le défilement. Sous mac chaque étape est indiqué directement.
event.height (événement : Configure)
Contient un int ( ) correspondant à la nouvelle valeur de la hauteur du contrôle modifié en pixel.
event.keycode (événements : KeyPress, Key, KeyRelease)
Contient un int ( ) correspondant au code de la touche enfoncée ou relâchée. Attention, ce code n'indique pas le caractère mais juste la référence de la touche. Par exemple : les lettres minuscules ou majuscules reçoivent le même code.
event.keysym (événements : KeyPress, Key, KeyRelease)
Contient un str ( ) correspondant au nom de code de la touche enfoncée ou relâchée.
event.keysym_num (événements : KeyPress, Key, KeyRelease)
Contient un int ( ) correspondant au code de event.keysym.
event.num (événements : ButtonPresse, Button, ButtonRelease)
Contient un int ( ) correspondant au numéro du bouton enfoncé et/ou relâchée.
event.serial (événements : tous)
Contient un int ( ) incrémenté à chaque fois que le serveur répond à une requête du client. Cela peut vous permettre par exemple de connaitre et d’ordonner une séquence d'événements serveur.
event.state (événements : tous)
Contient un int ( ) correspondant au modificateur du type d'événement. Consulter le tableau des masques de la documentation TK pour interpréter cette valeur, mais voici les plus courants :
- 0x0001 : touche Maj ;
- 0x0002 : touche Verr. Maj ;
- 0x0004 : touche Ctrl ;
- 0x0008 : touche Alt gauche ;
- 0x0010 : touche Verr. Num ;
- 0x0080 : touche Alt droite ;
- 0x0100 : boutton 1 de la souris ;
- 0x0200 : boutton 2 de la souris ;
- 0x0300 : boutton 3 de la souris ;
event.time (événements : tous)
Contient un int ( ) correspondant au temps écoulé (en millisecondes) depuis le lancement du programme. Vous pouvez utiliser cette valeur pour connaitre, par exemple, la durée entre deux événements ou pour les cordonnées.
event.type (événements : tous)
Contient un str ( ) correspondant au nom du type de l'événement. Référez-vous à la liste des types d'événements.
event.widget (événements : tous)
Contient la référence du contrôle qui déclenché l'événement.
event.width (événement : Configure)
Contient un int ( ) correspondant à la nouvelle valeur de la longueur du contrôle modifié en pixel.
event.x (événements : tous)
Contient un int ( ) indiquant l'abscisse (axe gauche-droite (horizontal)) du pointeur de la souris. Il est calculé en fonction du bord gauche du contrôle contenant le pointeur au moment du déclenchement de l'événement.
event.y (événements : tous)
Contient un int ( ) indiquant l'ordonnée (axe haut-bas (vertical)) du pointeur de la souris. Il est calculé en fonction du bord haut du contrôle contenant le pointeur au moment du déclenchement de l'événement.
event.x_root (événements : tous)
Contient un int ( ) indiquant l'abscisse du pointeur de la souris au moment du déclenchement de l'événement. Il indique la position dans l'écran.
event.y_root (événements : tous)
Contient un int ( ) indiquant l'ordonnée du pointeur de la souris au moment du déclenchement de l'événement. Il indique la position dans l'écran.
EXEMPLE.
import tkinter
def FNC_Lecture ( event ) :
ktexte = "Données ... \n"
ktexte += "char :" + str ( event.char ) + "\n"
ktexte += "delta :" + str ( event.delta ) + "\n"
ktexte += "height :" + str ( event.height ) + "\n"
ktexte += "keycode :" + str ( event.keycode ) + "\n"
ktexte += "keysym :" + str ( event.keysym ) + "\n"
ktexte += "keysym_num :" + str ( event.keysym_num ) + "\n"
ktexte += "num :" + str ( event.num ) + "\n"
ktexte += "serial :" + str ( event.serial ) + "\n"
ktexte += "state :" + str ( event.state ) + "\n"
ktexte += "time :" + str ( event.time ) + "\n"
ktexte += "widget :" + str ( event.widget ) + "\n"
ktexte += "width. :" + str ( event.width ) + "\n"
ktexte += "x :" + str ( event.x ) + "\n"
ktexte += "y :" + str ( event.y ) + "\n"
ktexte += "x_root :" + str ( event.x_root ) + "\n"
ktexte += "y_root :" + str ( event.y_root ) + "\n"
LAB_Donnees [ "text" ] = ktexte
TKI_Principal = tkinter.Tk ( )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
BUT_Message = tkinter.Button ( TKI_Principal , text = "Afficher les paramètres" )
LAB_Message = tkinter.Label ( TKI_Principal , text = "Appuyez sur une touche\n ou cliquez sur le bouton." )
LAB_Donnees = tkinter.Label ( TKI_Principal , justify = "left" , anchor = "w" )
TKI_Principal.bind ( "<KeyPress>" , FNC_Lecture )
BUT_Message.bind ( "<ButtonPress>" , FNC_Lecture )
LAB_Message.grid ( row = 0 , column = 0 )
LAB_Donnees.grid ( row = 0 , column = 1 , rowspan = 3 )
BUT_Message.grid ( row = 1 , column = 0 )
BUT_Quitter.grid ( row = 2 , column = 0 )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de