首页 > 其他分享 >无涯教程-Tk - 事件处理

无涯教程-Tk - 事件处理

时间:2023-11-23 18:32:01浏览次数:40  
标签:bin 事件处理 myLabel wish 无涯 usr text 事件 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时,将获得以下输出-

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

参考链接

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

标签:bin,事件处理,myLabel,wish,无涯,usr,text,事件,Tk
From: https://blog.51cto.com/u_14033984/8532144

相关文章

  • 无涯教程-Tk - 基本组件
    基本窗口小部件是几乎所有Tk应用程序中可用的常见窗口小部件。可用的基本小部件列表如下:Sr.No.Widgets&Remark1Label用于显示单行文本的小部件。2Button可单击并触发动作的小部件。3Entry小部件过去接受单行文本作为输入。4Message用于显示多行文本的小部件......
  • 无涯教程-Tk - 特殊变量
    在Tk中,无涯教程将某些变量归类为特殊变量,并且它们具有预定义的函数。特殊变量列表在下面列出。Sr.No.SpecialVariable&Remark1tk_library用于设置标准Tk库的位置。2tk_patchLevel指Tk解释器的当前补丁程序级别。3tk_strictMotif当非零时,Tk会尝试尽可能紧密......
  • 无涯教程-Tcl - 包(Packages)
    包(Packages)用于创建可重用的代码单元,使用命名空间的概念来避免变量名和过程名的冲突。在无涯教程的下一章"命名空间"教程中进一步了解。创建包(Packages)可以使用最少两个文件创建一个包,一个文件包含代码,其他文件包含索引程序包文件。下面给出了创建和使用包的步骤列表。......
  • python tkinter text用法
    >>>fromtkinterimport*>>>root=Tk()>>>text=Text(root,width=40,height=10)  #创建一个text文本框。长度是40pixel高度是10pixel>>>text.pack()                     #排版>>>text.config(wrap='word......
  • 无涯教程-Tcl - 字典(Dictionary)
    字典(Dictionary)是一种键值对(Key/Value)存储结构。语法如下所示-dictsetdictnamekeyvalue#ordictcreatedictnamekey1value1key2value2..keynvaluen创建字典的一些示例如下所示-#!/usr/bin/tclshdictsetcolourscolour1redputs$coloursdictset......
  • 无涯教程-Tcl - 字符串(Strings)
    Tcl的原始数据类型是字符串,这些字符串可以包含字母数字字符,仅数字,布尔值甚至二进制数据,Tcl使用16位Unicode字符,字母数字字符可以包含字母,包括非拉丁字符,数字或标点符号。字符串表示与其他语言不同,在Tcl中,当它只是一个单词时,不需要双引号。一个例子可以是-#!/usr/bin/tclshse......
  • 无人机遥控器方案定制_MTK平台无人设备手持遥控终端PCB板开发
    随着科技的不断发展和无人机技术的逐步成熟,无人机越来越受到人们的关注。作为一种高新技术,无人机的应用范围不断拓展,包括农业、环境监测、城市规划、运输物流等领域。同时,无人机的飞行控制技术也得到了不断的优化和提升。早期,无人机的飞行控制大多以机械方式为主,控制方式相对较为简......
  • python tkinter treeview 操作示例
    1.建立Treeviewfromtkinterimport*fromtkinter.ttkimport*root=Tk()#建立Treeviewcolumns=(('ID',50),('S_ID',50),('S_NAME',120),('B_NAME',120),('Date_Taken',100),......
  • 无涯教程-Sed - 特殊字符
    SED提供了两个特殊字符,它们被视为命令。本章说明了这两个特殊字符的用法。=命令"="命令显示行号。以下是"="命令的语法:[/pattern/]=[address1[,address2]]==命令将行号及其内容写入标准输出流。以下示例说明了这一点。[jerry]$sed'='books.txt执行上述代码后,您将......
  • 无涯教程-Sed - 模式范围
    本章介绍了SED如何处理PatternRange(模式范围)PatternRange可以是简单的文本或复杂的正则表达式。下面的示例打印作者Paulo的所有书籍。[jerry]$sed-n'/Paulo/p'books.txt执行上述代码后,您将得到以下输出:3)TheAlchemist,PauloCoelho,1975)ThePilgrimage,Paul......