- 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
广告