Tk - Ereignisse

Ereignisse in ihrer einfachsten Form werden mit Hilfe von Befehlen behandelt. Ein einfaches Beispiel für die Ereignisbehandlung ist die Ereignisbehandlung mit der Schaltfläche.

#!/usr/bin/wish

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

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

Ein einfaches Programm zum Anzeigen von Verzögerungstextanimationsereignissen ist unten dargestellt -

#!/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
}

Wenn wir das Programm ausführen, erhalten wir die folgende Ausgabe auf animierte Weise:

Ereignis nach Verzögerung

Die Syntax für Ereignis nach Verzögerung ist unten dargestellt -

after milliseconds number command

Ein einfaches Programm, das nach einem Verzögerungsereignis angezeigt werden kann, ist unten dargestellt.

#!/usr/bin/wish

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

Wenn wir das Programm ausführen, erhalten wir nach einer Sekunde die folgende Ausgabe:

Sie können ein Ereignis mit dem Befehl after cancel abbrechen (siehe unten).

#!/usr/bin/wish

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

Ereignisbindung

Die Syntax für die Ereignisbindung lautet wie folgt:

bind arguments

Beispiel für Tastaturereignisse

#!/usr/bin/wish

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

Wenn wir das Programm ausführen und einen Buchstaben X drücken, erhalten wir die folgende Ausgabe:

Key Pressed: X

Beispiel für Mausereignisse

#!/usr/bin/wish

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

Wenn wir das Programm ausführen und die linke Maustaste drücken, erhalten wir eine Ausgabe ähnlich der folgenden:

Button 1 Pressed : 89 90

Verknüpfen von Ereignissen mit Schaltflächenbeispiel

#!/usr/bin/wish

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

Wenn wir das Programm ausführen und die Eingabetaste drücken, erhalten wir die folgende Ausgabe:

Event triggered