- Tcl 教程
- Tcl - 首頁
- Tcl - 概述
- Tcl - 環境設定
- Tcl - 特殊變數
- Tcl - 基本語法
- Tcl - 命令
- Tcl - 資料型別
- Tcl - 變數
- Tcl - 運算子
- Tcl - 決策
- Tcl - 迴圈
- Tcl - 陣列
- Tcl - 字串
- Tcl - 列表
- Tcl - 字典
- Tcl - 過程
- Tcl - 包
- Tcl - 名稱空間
- Tcl - 檔案I/O
- Tcl - 錯誤處理
- Tcl - 內建函式
- Tcl - 正則表示式
- Tk 教程
- Tk - 概述
- Tk - 環境
- Tk - 特殊變數
- Tk - 小部件概述
- Tk - 基本小部件
- Tk - 佈局小部件
- Tk - 選擇小部件
- Tk - 畫布小部件
- Tk - 大型小部件
- Tk - 字型
- Tk - 圖片
- Tk - 事件
- Tk - 視窗管理器
- Tk - 幾何管理器
- Tcl/Tk 有用資源
- Tcl/Tk - 快速指南
- Tcl/Tk - 有用資源
- Tcl/Tk - 討論
Tk - 事件
事件在其最簡單的形式下是藉助命令處理的。一個簡單的事件處理示例是使用按鈕的事件處理,如下所示:
#!/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
執行程式後,我們將在一秒鐘後得到以下輸出:
您可以使用 after cancel 命令取消事件,如下所示:
#!/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"
當我們執行程式並按下 Enter 鍵時,我們將得到以下輸出:
Event triggered
廣告