События в простейшем виде обрабатываются с помощью команд. Простой пример обработки события — обработка события кнопкой и показан ниже:
#!/usr/bin/wish proc myEvent { } { puts "Event triggered" } pack [button .myButton1 -text "Button 1" -command myEvent]
Когда мы запустим вышеупомянутую программу, мы получим следующий вывод —
Простая программа для отображения события задержки текстовой анимации показана ниже —
#!/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 }
Когда мы запустим программу, мы получим следующий вывод в анимированном виде —
Событие после задержки
Синтаксис для события после задержки показан ниже —
after milliseconds number command
Простая программа для отображения после события задержки показана ниже —
#!/usr/bin/wish proc addText {} { label .myLabel -text "Hello................" -width 25 pack .myLabel } after 1000 addText
Когда мы запустим программу, через одну секунду мы получим следующий вывод:
Вы можете отменить событие, используя команду после отмены, как показано ниже —
#!/usr/bin/wish proc addText {} { label .myLabel -text "Hello................" -width 25 pack .myLabel } after 1000 addText after cancel addText
Привязка событий
Синтаксис для привязки событий, как показано ниже —
bind arguments
Пример событий клавиатуры
#!/usr/bin/wish bind . {puts "Key Pressed: %K "}
Когда мы запустим программу и нажмем букву X, мы получим следующий вывод:
Key Pressed: X
Пример событий мыши
#!/usr/bin/wish bind . {puts "Button %b Pressed : %x %y "}
Когда мы запустим программу и нажмем левую кнопку мыши, мы получим вывод, подобный следующему:
Button 1 Pressed : 89 90
Пример привязки событий с помощью кнопки
#!/usr/bin/wish proc myEvent { } { puts "Event triggered" } pack [button .myButton1 -text "Button 1" -command myEvent] bind . ".myButton1 invoke"
Когда мы запустим программу и нажмем ввод, мы получим следующий вывод: