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