TCL学习心得(1)Tcl快速入门

Tcl(tool command language)工具命令语言,用于控制和扩展应用程序的动态语言(也称脚本语言)。Tcl最有用的一个扩展就是TK,用于开发图形用户界面GUI(Graphical User Interface)应用程序的工具集。本文使用wish(windowing shell)的应用程序,在终端键入wish,就会在屏幕上显示一个小的空白窗口,然后从控制台读取命令。

wish

wish

 用Tk编写“Hello,World”程序

set a “hello world”
puts $a

 

 简单介绍了Tcl的操作步骤和运行了简单的程序,下面将用wish运行一个简单的Tk脚本。

button .b -text "Hello, world!" -command exit
grid .b

 在wish中输入两行Tcl脚本,窗口就会变成下图所示。如果把鼠标移到"Hello, world!"上,然后点击鼠标主键,这个窗口就会消失,并且退出wish。

 示例中的button命令有两个选项:-text,指定了在按钮上显示字符串;-command,指定了用户激活这个按钮的所执行的Tcl脚本。下面是其他一些按钮选项,供大家参考:

-background  按钮的背景颜色,如blue yellow

-foreground 按钮的背景色,如back

-font 按钮使用的字体,如”time 12“代表12磅Times Roman字体

示例中创建了一个.b的按钮组件,创建的组件并不会自动显示。命令grid让这个按钮在组件出现在屏幕上。grid命令要求几何管理器调用栅格管理器(gridder)来管理.b。栅格管理器在一个纵横栅格中排列显示组件。这里的命令把.b放在栅格的第一行第一列,并让栅格的大小正好显示该组件。

 变量与替换

set a 56
% 56
set b [expr $a *4]
%224

 第一条命令将56赋给变量a,并且返回这个变量的值。示例中的%表示运行完命令后,产生的输出结果。第二条命令中,$让Tcl执行变量替换(variable substitution):Tcl解释器将$符后面的变量名替换为该变量的值,因此expr中接受的参数实际上是56*4。expr称为算数运算符。Tcl还支持命令替换(command substitution),允许把一条命令的结果作为另一条命令的输入参数。示例中的expr命令将56*4的值输出后,作为set命令的输入。Tcl中还有一个反斜线替换(backlash substitution),其作用是给出普通字符添加特殊含义,或者取消特殊字符的特殊含义,示例如下:

set a \$A
% $A
set newline \n
%
%

第一条命令将变量x设置为字符$A,第二条命令将变量newline赋值为包含一个换行符的字符串。

总结:Tcl支持三种替换方式:变量替换(variable substitution)

                                                命令替换(command substitution)

                                                反斜线替换(backlash substitution)

控制结构

下面示例使用变量和替换以及一些简单的控制结构,创建了一个名为factorial的Tcl过程(procedure),这个过程可以计算非负整数的阶乘。

proc factorial {val} {
 set result 1
 while {$val > 0} {
 set result [expr $result*$val]
 incr val -1
 }
  return $result
}

在wish或者tclsh中键入上述代码,或者写入一个文件,然后把这个文件source后,就会生成一个命名为factorial的命令。这个命令接受一个非负整数作为参数,进行结果其结果返回到终端显示。

 proc命令获取三个参数:过程名称,用空格分隔的参数名列表以及过程块。会把过程名称作为新的命令加入到Tk解释器中。

return命令让过程退出,将变量result中的值作为这个过程的结果。

事件绑定

下面将示例为factori过程提供一个图形化界面的前台。并且介绍两个新的组件类型,演示Tcl的绑定机制,使得窗口中特定事情发生时,就执行特定的Tcl脚本。按钮的-command选项就是有特定组件类型实现的简单绑定。

proc factorial {val} {
 set result 1
 while {$val > 0} {
 set result [expr $result*$val]
 incr val -1
 }
  return $result
}
entry .value -width 6 -relief sunken -textvariable value  
label .description -text "factorial is"
label .result -textvariable result
button .calculate -text "Calculate" \
 -command {set result [factorial $value]}
bind .value <Return> {
     .calculate flash
     .calculate invoke
}
grid .value  .description  .result  -padx 1m -pady 1m
grid .calculate  - - -padx 1m -pady 1m

 将上述代码输入wish中,就会显示所示的图形化界面,这里有一个输入组件,可以鼠标单击输入数字,点击”Calculate“的按钮,就阶乘的结果就会显示在窗口的右侧。在输入框按下Return键(用户通过键盘输入回车),也会出现同样的结果。

 这个应用程序有四个组件:一个输入组件,一个按钮和两个标签。输入组件可以显示一行输入的文本。-relief选项设置为sunken,意思是输入组件向内嵌入窗口。选项-textvariable为输入组件指定的一个全局变量,用来保持输入的内容。标签组件分别控制说明文本,控制计算结果。

bind . <Motion> {puts "pointer at %x,%y"}

命令bind有三个参数:组件名,事件说明以及指定组件中指定事件发生时调用的Tcl脚本。将上述脚本加入到代码中,鼠标将会显示事件放生时鼠标所在的位置。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: TCL语言入门 PDF 是一份专门为初学者准备的TCL编程语言教程的电子书。该PDF包含了TCL语言基础知识、语法规则、数据类型、控制流程等内容,旨在帮助读者快速上手和理解TCL编程。以下是我对TCL语言入门 PDF 的一些描述。 首先,TCL是一种简单而强大的脚本编程语言,广泛用于自动化、测试、网络编程和图形用户界面等领域。TCL语言入门 PDF 适合那些没有编程经验或想要学习新编程语言的人。 这份PDF教程提供了一个系统化的学习路径,从TCL语言基础开始,逐步引导读者深入了解该语言的各个方面。它以简单易懂的语言和实例来解释TCL语言的概念和语法,帮助读者建立起对TCL编程的基本理解。 TCL语言入门 PDF 还包含丰富的示例代码和练习题,读者可以通过实践来巩固所学知识。这些示例代码涵盖了TCL的各个方面,如变量、条件语句、循环、函数、文件操作等。读者可以通过运行这些代码来加深对TCL语言的理解,并自行进行扩展和修改。 除了基本的TCL编程知识,TCL语言入门 PDF 还介绍了TCL自带的扩展库,如Tk图形库,可以帮助读者创建交互式的图形用户界面。这部分内容使得读者能够从命令行脚本向图形化脚本开发过渡。 总体而言,TCL语言入门 PDF 是一份富有实践性的教程,适合初学者快速入门和掌握TCL编程语言。通过理论知识和实例的结合,读者可以从零开始学习并掌握TCL的基本语法和核心概念。他们将能够编写简单的TCL脚本,并逐渐扩展到更复杂的应用场景。 ### 回答2: TCL(工具命令语言)是一种脚本语言,用于编写自动化任务、测试脚本、GUI应用程序等。如果你对TCL语言感兴趣,可以通过阅读"TCL语言入门"的PDF来快速了解和掌握它。 第一,这本PDF提供了TCL语言的基本概念和语法。你将学习到如何定义变量、使用控制流语句、创建函数和过程等。此外,还会介绍TCL的数据类型、运算符和内置函数等。通过对这些基本概念的学习,你将能够开始编写简单的TCL脚本。 第二,这本PDF还将引导你学习TCL的高级特性。它将介绍如何使用TCL的扩展功能,例如面向对象编程(OOP)、正则表达式、文件操作和网络编程等。这些高级特性将使你能够编写更复杂和功能强大的TCL脚本。 第三,这本PDF还提供了丰富的实例和练习,帮助你巩固所学的知识。这些实例涵盖了不同的应用场景,如自动化任务、网络通信和图形用户界面开发等。通过实际的练习,你将能够将TCL语言应用到实际问题中,提升你的编程技能。 总之,"TCL语言入门"的PDF是一本全面介绍TCL语言的参考资料。通过仔细阅读和实践,你将能够快速入门并掌握该语言,为你的编程之旅打下坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值