Tk - Événements

Les événements dans leur forme la plus simple sont gérés à l'aide de commandes. Un exemple simple de gestion des événements est la gestion des événements avec bouton et est illustré ci-dessous -

#!/usr/bin/wish

proc myEvent { } {
   puts "Event triggered"
}
pack [button .myButton1  -text "Button 1"   -command myEvent]

Lorsque nous exécutons le programme ci-dessus, nous obtiendrons la sortie suivante -

Un programme simple pour afficher l'événement d'animation de texte de retard est présenté ci-dessous -

#!/usr/bin/wish

proc delay {} {
   for {set j 0} {$j < 100000} {incr j} {} 
}

label .myLabel -text "Hello................" -width 25
pack .myLabel
set str "Hello................"
for {set i [string length $str]} {$i > -2} {set i [expr $i-1]} {
   .myLabel configure -text [string range $str 0 $i]
   update
   delay
}

Lorsque nous exécutons le programme, nous obtiendrons la sortie suivante de manière animée -

Événement après retard

La syntaxe de l'événement après le délai est indiquée ci-dessous -

after milliseconds number command

Un programme simple à afficher après l'événement de retard est montré ci-dessous -

#!/usr/bin/wish

proc addText {} {
   label .myLabel -text "Hello................" -width 25
   pack .myLabel
}
after 1000 addText

Lorsque nous exécutons le programme, nous obtiendrons la sortie suivante après une seconde -

Vous pouvez annuler un événement en utilisant la commande après annulation comme indiqué ci-dessous -

#!/usr/bin/wish

proc addText {} {
   label .myLabel -text "Hello................" -width 25
   pack .myLabel
}
after 1000 addText
after cancel addText

Liaison d'événement

La syntaxe de la liaison d'événement est la suivante:

bind arguments

Exemple d'événements de clavier

#!/usr/bin/wish

bind .  {puts "Key Pressed: %K "}

Lorsque nous exécutons le programme et appuyez sur une lettre X, nous obtenons la sortie suivante -

Key Pressed: X

Exemple d'événements de souris

#!/usr/bin/wish

bind .  {puts "Button %b Pressed : %x %y "}

Lorsque nous exécutons le programme et appuyez sur le bouton gauche de la souris, nous obtiendrons une sortie similaire à la suivante -

Button 1 Pressed : 89 90

Lier des événements avec un exemple de bouton

#!/usr/bin/wish

proc myEvent { } {
   puts "Event triggered"
}
pack [button .myButton1  -text "Button 1"   -command myEvent]
bind .  ".myButton1 invoke"

Lorsque nous exécutons le programme et appuyez sur Entrée, nous obtiendrons la sortie suivante -

Event triggered