Tk - Sự kiện

Các sự kiện ở dạng đơn giản nhất được xử lý với sự trợ giúp của các lệnh. Một ví dụ đơn giản về xử lý sự kiện là xử lý sự kiện với nút và được hiển thị bên dưới:

#!/usr/bin/wish

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

Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau:

Một chương trình đơn giản để hiển thị sự kiện hoạt ảnh văn bản trì hoãn được hiển thị bên dưới:

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

Khi chúng tôi chạy chương trình, chúng tôi sẽ nhận được kết quả sau theo cách hoạt hình:

Sự kiện sau khi trì hoãn

Cú pháp cho sự kiện sau khi trì hoãn được hiển thị bên dưới:

after milliseconds number command

Một chương trình đơn giản để hiển thị sau sự kiện trì hoãn được hiển thị bên dưới:

#!/usr/bin/wish

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

Khi chúng tôi chạy chương trình, chúng tôi sẽ nhận được kết quả sau sau một giây:

Bạn có thể hủy sự kiện bằng lệnh sau khi hủy như hình dưới đây -

#!/usr/bin/wish

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

Sự kiện ràng buộc

Cú pháp cho ràng buộc sự kiện như hình dưới đây:

bind arguments

Ví dụ về sự kiện bàn phím

#!/usr/bin/wish

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

Khi chúng tôi chạy chương trình và nhấn một ký tự X, chúng tôi sẽ nhận được kết quả sau:

Key Pressed: X

Ví dụ về sự kiện chuột

#!/usr/bin/wish

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

Khi chúng ta chạy chương trình và nhấn nút chuột trái, chúng ta sẽ nhận được một kết quả tương tự như sau:

Button 1 Pressed : 89 90

Liên kết sự kiện với ví dụ về nút

#!/usr/bin/wish

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

Khi chúng tôi chạy chương trình và nhấn enter, chúng tôi sẽ nhận được kết quả sau:

Event triggered