Tk 事件

Tk 事件

事件在最简单的形式下是通过命令来处理的。一个简单的事件处理的示例是通过按钮来处理事件,如下所示 −

#!/usr/bin/wish

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

当我们运行上述程序时,我们将得到以下输出 –

Tk 事件

下面是一个简单的程序,用于显示延迟文本动画事件

#!/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 lengthstr]} {i>-2} {set i [expri-1]} {
   .myLabel configure -text [string range str 0i]
   update
   delay
}

当我们运行程序时,我们将以动画方式得到以下输出-

Tk 事件

延时后的事件

以下是延时后事件的语法:

after milliseconds number command

一个简单的程序,用来展示延时事件的示例如下 –

#!/usr/bin/wish

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

当我们运行程序时,经过一秒钟后,我们将会得到以下输出:

Tk 事件

您可以使用下面所示的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"

当我们运行程序并按下回车时,我们将得到以下输出−

Event triggered

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程