Tk - 事件处理

Tk - 事件处理 首页 / Tcl/Tk入门教程 / Tk - 事件处理

最简单形式的事件通过命令来处理。事件处理的一个简单示例是使用按钮进行事件处理,如下所示-

#!/usr/bin/wish

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

当无涯教程运行上面的程序时,将获得以下输出-

Event Example

显示延迟文本动画事件的简单程序如下所示-

无涯教程网

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

运行程序时,将以动画方式获得以下输出:

Event Example3

延迟事件

延迟后事件的语法如下所示-

after milliseconds number command

下面是一个显示延迟事件后的简单程序:

#!/usr/bin/wish

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

运行程序时,一秒钟后将获得以下输出-

Event Example2

您可以使用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时,将获得以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/tcl-tk/tk-events.html

来源:LearnFk无涯教程网

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

算法面试通关40讲 -〔覃超〕

如何做好一场技术演讲 -〔极客时间〕

玩转Spring全家桶 -〔丁雪丰〕

透视HTTP协议 -〔罗剑锋(Chrono)〕

Flutter核心技术与实战 -〔陈航〕

图解 Google V8 -〔李兵〕

Go 语言项目开发实战 -〔孔令飞〕

结构沟通力 -〔李忠秋〕

互联网人的数字化企业生存指南 -〔沈欣〕

好记忆不如烂笔头。留下您的足迹吧 :)