一种高效的可扩展的GUI开发工具_Tcl_Tk

合集下载

Tcl语言基础教程

Tcl语言基础教程
变量置换由一个$符号标记,变量置换会导致变量的值而非变量(标识符)本身被插入到字符串中。
set x 10
set y 100 + $x
这时,y的值还不是我们想要的值110,而是10+100,因为Tcl解释器把10+100看成是一个字符串而不是表达式;y要想得到值
110,还必须用命令置换,使得Tcl会把10+100看成一个表达式并求值。
string tolower string [first] [last]
string replace string first last [newstring]
string equal [-nocase] [-length int] string1 string2
string match [-nocase] pattern string如果pattern匹配string,那么返回1,否则返回0.
Tcl变量根据其结构的复杂程度分为“简单变量”和“数组变量”两类。
(1)简单变量
一个Tcl的简单变量包含两个部分:名字和值,其中名字和值都可以是任意字符串。不过为了更好的使用变量置换功能,变量名
最好按C\C++语言中标识符的命名规则命名。这是因为Tcl解释器在分析一个变量置换时,只把从$符号往后直到第一个不是字母、数
个新字符串,并返回。例如:
set msg [format "%s is %d years old" $name $age]
【scab】
语法:scan string formatsting varName varName ...
scan命令可以认为是format命令的逆,其功能类似于ANSI C中的sscanf函数。它按formatsting提供的格式分析string字

tcl 面试题

tcl 面试题

tcl 面试题TCL面试题一、介绍TCLTCL(Tool Command Language)是一种脚本语言,广泛应用于软件开发、自动化测试、嵌入式系统等领域。

TCL语言简洁、易于学习和使用,具有良好的可扩展性和跨平台性。

本文将为您介绍TCL语言的特点、应用和一些常见的面试题。

二、TCL语言的特点1. 简洁易学:TCL语法简单,关键字较少,易于学习和上手。

它的脚本语言特性使得编写和修改代码更加高效。

2. 可扩展性:TCL提供了丰富的库和扩展接口,方便开发者扩展其功能,满足各种需求。

例如,通过Tcl Extension Architecture(TEA)可以扩展C/C++库,使其能够被TCL脚本调用。

3. 跨平台性:TCL可以在多个操作系统上运行,包括Windows、Linux、macOS等,使得开发人员能够在不同平台上完成相同的工作。

4. 高度集成:TCL能够与其他编程语言(如C、C++、Python)进行混合编程,通过调用其它语言的库和函数,增强了TCL的功能。

三、TCL在软件开发中的应用1. 自动化测试:TCL语言可以通过调用系统命令和控制外部设备进行自动化测试,提高测试效率和一致性。

例如,使用Expect库可以模拟用户输入和处理输出,实现自动交互。

2. 网络编程:TCL提供了强大的网络编程能力,可用于开发网络服务器、客户端和网络管理工具。

它支持TCP/IP、HTTP、FTP等协议,并提供了相应的库和命令。

3. GUI开发:利用Tcl/Tk库,可以轻松实现图形用户界面(GUI)应用程序的开发。

它提供了丰富的控件和布局管理器,可以适应不同平台的界面需求。

4. 脚本化工具:TCL语言可用于开发脚本化工具,简化复杂任务的操作。

例如,构建自定义的构建系统、日志分析工具和数据处理工具等。

四、一些常见的TCL面试题1. 什么是TCL?它的特点是什么?2. 如何在TCL中声明变量?有哪些不同的数据类型?3. 如何定义和使用函数(过程)?4. 如何处理文件输入和输出?5. 如何使用TCL进行错误处理?有哪些异常处理机制?6. 如何在TCL中进行字符串操作?如何连接和截取字符串?7. 如何使用TCL进行正则表达式匹配和替换?8. 如何在TCL中进行条件判断和循环控制?9. 如何调用系统命令和外部程序?10. 如何处理列表和数组数据类型?五、总结本文对TCL语言进行了简要介绍,包括其特点、应用领域以及常见的面试题。

Tk的发展历程

Tk的发展历程

Tk的发展历程Tk是一个开源的图形用户界面(GUI)工具包,最初是作为Tcl解释器的扩展而开发的。

它提供了一套用于创建GUI应用程序的丰富的工具和控件,并且易于使用。

Tk的发展可以追溯到1987年,由John Ousterhout在加州大学伯克利分校开发。

起初,Tk是作为Tcl(Tool Command Language)的一部分而开发的,Tcl是一种脚本语言,被设计用于系统管理和自动化任务。

在早期的版本中,Tk提供了一些基本的GUI元素,例如窗口、按钮、文本框等。

然而,随着时间的推移,Tk不断发展壮大,增加了更多功能和控件,使得开发者可以创建更复杂和功能丰富的GUI应用程序。

1991年,John Ousterhout将Tk和Tcl发布为开源软件,这导致Tk的流行度迅速增长。

由于其易于使用和跨平台的特性,Tk逐渐成为GUI应用程序开发的首选工具之一。

随着技术的不断进步,Tk也不断更新和改进。

最新的Tk版本(截至2021年)是8.6,它带来了一些新的功能和改进,包括更好的绘图性能、增强的字体渲染、更好的窗口管理等。

除了官方的Tk版本,也有其他基于Tk的衍生版本,例如Tix和Tile。

Tix是一个基于Tk的扩展,提供了更多的控件和工具,增强了Tk的功能。

Tile则是一个通过使用主题来定制Tk应用程序外观的库。

总的来说,Tk的发展历程是一个不断演进和改进的过程。

它从最初的基本GUI工具包发展为一个功能强大、易于使用并且广泛应用的GUI开发工具。

作为开源软件,Tk继续吸引着众多开发者的关注和贡献,为GUI应用程序开发提供了有力支持。

2024版TCL教程(中文)

2024版TCL教程(中文)
《TCL/TK入门经典》
这是一本经典的TCL/TK入门书籍,详细介绍了TCL语言的基础知识和常用命令,以及如何使 用TCL/TK进行GUI编程。
《TCL编程之道》
这本书深入探讨了TCL编程的高级技巧和最佳实践,适合有一定TCL基础的读者。
TCL博客
一些专注于TCL技术的博客也是学习的好资源,如"TCL专家博客"、"TCL技术分享"等,这些 博客通常会分享一些实用的技巧和经验。
MySQL、PostgreSQL、SQLite等, 并提供连接示例代码。
连接数据库
介绍如何在TCL中执行SQL语句, 包括查询、插入、更新和删除等操 作,并提供相应的示例代码。
执行SQL语句
讲解如何处理查询结果集,包括遍 历结果集、获取字段值和元数据等 操作,并提供相应的示例代码。
TCL实例分析
05
THANKS.
数据遍历
通过`foreach`命令遍历数组或列表中的每个元素,并对每个元 素执行相应的操作。
文件操作与I/O流
文件读写
TCL提供了文件读写命令,如`open`、`read`、`write`等,用于实 现文件的读写操作。
文件路径处理
TCL支持文件路径的处理,如路径拼接、路径分解等,方便进行文 件操作。
错误处理
TCL提供了错误处理机制,如使用`catch`命令捕获异常并处理。通过错误处理,可以确 保程序的稳定性和可靠性。
TCL高级特性
03
过程与函数
过程定义
01
TCL支持自定义过程,可以通过`proc`关键字定义过程,并指定
过程名和参数列表。
函数调用
02
通过过程名及参数列表调用已定义的过程,实现代码复用和模

2024版年度TCL培训教程笔记

2024版年度TCL培训教程笔记

目录•TCL基础概念与特点•TCL基本语法与数据结构•TCL过程与函数定义调用•TCL扩展功能库使用指南•TCL界面编程技术实践•TCL网络编程应用实例•TCL测试与调试技巧分享TCL基础概念与特点01TCL(Tool Command Language)是一种广泛应用的嵌入式脚本语言。

02发展历程:起源于20世纪80年代,由John Ousterhout教授创建,至今仍在不断更新和发展。

03主要应用于快速原型开发、自动化测试、GUI应用程序等领域。

TCL定义及发展历程TCL语言特性与优势01语言特性简单易学、动态类型、面向对象、可扩展性强。

02优势跨平台兼容性好,易于与C/C等语言集成,提供丰富的库函数和工具。

应用领域及案例分析应用领域自动化测试、网络编程、嵌入式系统开发等。

案例分析如使用TCL进行自动化测试脚本编写,提高测试效率;在嵌入式系统中利用TCL实现动态配置和功能扩展。

开发环境与工具介绍开发环境支持多种操作系统,如Windows、Linux、macOS等。

工具介绍常用的开发工具有Tclsh、Tk、Expect等,分别用于命令行交互、GUI开发和自动化控制。

TCL基本语法与数据结构变量、数据类型与运算符01变量声明与赋值TCL中变量无需事先声明,直接使用`set`命令进行赋值,例如`set x10`。

02数据类型TCL支持多种数据类型,包括整数、浮点数、字符串等。

数据类型之间可以自动转换。

03运算符TCL支持常见的算术运算符(如+、-、*、/)、比较运算符(如==、!=、<、>)和逻辑运算符(如&&、||)。

循环结构TCL提供`for`和`foreach`循环结构,用于重复执行某段代码。

其中,`for`循环可以指定循环次数和步长,`foreach`循环则遍历列表或数组中的元素。

条件语句TCL中使用`if`、`elseif`和`else`关键字构成条件语句,根据条件执行不同的代码块。

Python常见常用的库介绍

Python常见常用的库介绍

Pytho‎n的库由‎于设计者和‎开源社区的‎共同努力,‎在pyth‎o n中有大‎量优秀的库‎可以被直接‎调用以高效‎地完成不同‎需求的工作‎。

这里列举‎一些常见常‎用的库:‎T kint‎e r———‎— Pyt‎h on默认‎的图形界面‎接口。

T‎k inte‎r是一个和‎T k接口的‎P ytho‎n模块,T‎k inte‎r库提供了‎对Tk A‎P I的接口‎,它属于T‎c l/Tk‎的GUI工‎具组。

Tc‎l/Tk是‎由John‎Oust‎e rhou‎t发展的书‎写和图形设‎备。

Tcl‎(工具命令‎语言)是个‎宏语言,用‎于简化sh‎e ll下复‎杂程序的开‎发,Tk工‎具包是和T‎c l一起开‎发的,目的‎是为了简化‎用户接口的‎设计过程。

‎T k工具包‎由许多不同‎的小部件,‎如一个按钮‎、一个滚动‎条等。

通过‎T k提供的‎这些小部件‎,我们就可‎快速地进行‎G UI开发‎。

Perl‎、Sche‎m e等语言‎也利用Tk‎库进行GU‎I开发。

T‎k inte‎r是跨平台‎,在各种平‎台下都能使‎用。

Py‎t hon ‎I magi‎n g Li‎b rary‎(PIL)‎————p‎y thon‎提供强大的‎图形处理的‎能力,并提‎供广泛的图‎形文件格式‎支持,该库‎能进行图形‎格式的转换‎、打印和显‎示。

还能进‎行一些图形‎效果的处理‎,如图形的‎放大、缩小‎和旋转等。

‎是Pyth‎o n用户进‎行图象处理‎的强有力工‎具。

Pm‎w(Pyt‎h on m‎e gawi‎d gets‎)Pyth‎o n超级G‎U I组件集‎————一‎个在pyt‎h on中利‎用Tkin‎t er模块‎构建的高级‎G UI组件‎,每个Pm‎w都合并了‎一个或多个‎T kint‎e r组件,‎以实现更有‎用和更复杂‎的功能。

‎P yXML‎————‎用Pyth‎o n解析和‎处理XML‎文档的工具‎包,包中的‎4DOM是‎完全相容于‎W3C D‎O M规范的‎。

(完整)TCL培训教程(全)

(完整)TCL培训教程(全)

Tcl编程简介(一)简介 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,功能强大。

是tool command language的缩写,发音为 "tickle”,实际上包含了两个部分:一个语言和一个库。

首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。

它有一个简单的语法和很强可扩充性,Tcl可以创建新的过程以增强其内建命令的能力。

其次,Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以使你扩充(定义新的过程)的库函数。

应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。

但Tcl库收到命令后将它分解并执行内建的命令,经常会产生递归的调用。

下面简单介绍以下tcl的语法规则:解释器 在Tcl的数据结构中的核心是Tcl_Interp.一个解释器包含了一套命令,一组变量和一些用于描述状态的东西。

每一个 Tcl命令是在特定的Tcl_Interp中运行的,基于Tcl的应用程序可以同时拥有几个Tcl_Interp。

Tcl_Interp是一个轻量级的结构,可以快速的新建和删除。

数据类型 Tcl只支持一种数据结构:字符串(string)。

所有的命令,命令的所有的参数,命令的结果,所有的变量都是字符串。

请牢记这一点,所有的东西都是字符串。

这是它比较有特点的方面字符串有三种形式:命令(command), 表达式(expresion)和表(list)。

Basic Command Syntax 基本语法 Tcl有类似于shell和lisp的语法,当然也有许多的不同。

一条Tcl的命令串包含了一条或多条命令用换行符或分号来隔开,而每一条命令包含了一个域(field)的集合,域使用空白分开的,第一个域是一个命令的名字,其它的是作为参数来传给它。

例如: set a 22 //相当于C中的 a=22 a是一个变量这条命令分为三个域:1 set 2 a 3 22 set使用于设置变量的值的命令,a、20 作为参数来传给它,a使它要操作的变量名,22是要付给的a值。

UG后处理tcl语言解释

UG后处理tcl语言解释

exec tclsh ${1+"$@"}# echo server that can handle multiple# simultaneous connections.proc newConnection { sock addr port } {# client connections will be handled in# line-buffered, non-blocking modefconfigure $sock -blocking no -buffering line# call handleData when socket is readablefileevent $sock readable [ list handleData $sock ]}proc handleData {puts $sock [ gets $sock ]if { [ eof $sock ] } {close $sock}}# handle all connections to port given# as argument when server was invoked# by calling newConnectionset port [ lindex $argv 0 ]socket -server newConnection $port# enter the event loop by waiting# on a dummy variable that is otherwise# unused.vwait forever另外一个TK的例子 (来自 A simple A/D clock) 它使用了定时器时间,3行就显示了一个时钟。

proc every {ms body} {eval $body; after $ms [info level 0]} pack [label .clock -textvar time]every 1000 {set ::time [clock format [clock sec]-format %H:%M:%S]} ;# RS解释:第一行定义了过程every,每隔ms毫秒,就重新执行body代码。

TCL-TK编程实践

TCL-TK编程实践

第3部分 TK基础23TK基本原理23.1TK中的Hello,World!我们的第一个Tk脚本非常简单。

它创建了一个按钮,当你点击它时,就向标准输出设备打印“Hello,World!”。

在按钮控件上方是一个由窗口管理器提供的标题栏,本例中在X视窗系统中是twm。

23.1.1例23-1 “Hello,World!”Tk程序第一行标识了脚本的解释器:如果此脚本象其它NUIX命令文件那样被调用,则这个特殊的行是必要的,第2节描述了如何设置脚本于不同的平台上。

在这个脚本中有两个TCL命令:一个用来创建按钮,一个用来使其在显示上可见。

bu tton命令创建一个按钮的实例:按钮的名字是.hello。

按钮上的标签是Hello,与此按钮相关联的命令是:pack命令将按钮映射到屏幕上。

并提供了一些堆叠参数,所以在按钮周围有空间。

当你将这两个命令键入wish中时,当button命令给出时,你不会看到任何东西。

然而,在pack命令之后,你将会看到空的主窗口将会收缩到足以容纳按钮和其添充空隙(padd ing)。

包装器的行为在第24和第25章进行深入的讨论。

Tk使用一种基本对象的系统来创建和命令控件。

与每一种小控件(如按钮)相关联的是一个用于创建此种类别控件实例的命令。

当小控件被创建时,一个作用在这个控件实例上的一个新的TCL命令就定义了。

例23-1创建了一个名为.hello的按钮,并且我们可以使用其名字作为一个TCL命令来操纵此按钮。

例如,我们可以使用此按钮高亮几次:或者,我们可以运行与此按钮相关联的命令:Tk有控件类和实例,但是它并不是完全面向对象的。

不可能去对一个控件类派生子类并继承。

相反,Tk,提供了非常灵活的控件,可以通过多种方式调节其外观。

资源数据库可以存储被许多控件共享的配置信息,并且新的类也可以被引入到组资源中。

控件行为通过使用分缓绑定的绑定标签得到共享。

Tk使用部件(composition)来组装共享行为和属性的控件。

Python Tkinter GUI编程

Python Tkinter GUI编程

Python Tkinter GUI编程Python Tkinter是Python语言的一种图形用户界面(GUI)编程工具包,它提供了一组工具和组件,使得程序员可以在Python程序中创建一个交互式的界面,用于处理用户输入,展示输出等交互性操作。

Python Tkinter也被广泛地应用于很多相对简单的GUI程序开发,包括桌面应用、窗口提示框、列表框、标签等控件。

本文旨在探讨Python Tkinter编程的基本特征、使用场景、优缺点、以及一些实用技巧等。

一、Python Tkinter的基本特征Python Tkinter提供了丰富的GUI控件,比如:1.标签(Label)和按钮(Button)控件用于创建许多用户界面上标准而常见的控件。

2.输入框(Entry box)控件和文本框(Text box)控件用于让用户输入数据或查看输出结果。

3.滚动条(Scrollbar)控件、列表框(Listbox)控件、下拉列表框(ComboBox)控件和多选框(Checkbutton)控件等用于展示和管理视图或者选择/操作数据。

4.菜单(Menu)和工具栏(Toolbar)控件用于创建功能性组件和其他交互式辅助应用程序。

除此之外,Python Tkinter还提供了一系列其他特点:1.模块化:Python Tkinter模块是可重用、可扩展、可移植和可维护的。

2.简单易学:Python Tkinter已经被设计成一种易于使用的编程语言,其提供的API使用起来简单、直接、自然并且易于理解。

3.操作系统兼容性:Python Tkinter可以在所有主要的操作系统平台上运行,包括Windows、Mac OS和Linux等。

4.提供多种语言支持:Python Tkinter支持多种语言,如Python、C、C++等。

5.开发效率高:Python Tkinter提供了丰富的GUI控件和操作方法,极大地提高了开发效率和代码的重用性。

Tcl语言基础教程

Tcl语言基础教程
注意路径的描述应该和UNIX相同,使用'/'而不是'\'。
2、置换(Substitution)
set x 10
set y 100 + x
上面命令执行后,y的值是“100 + x”而不是我们期望的110。这是因为Tcl解释器在分析命令时,把所有的命令参数都当作
字符串看待,所以x 被看作了字符串“100 + x”的一部分。如果我们想使用x的值'10' ,就必须告诉Tcl解释器:我们在这里期望的
如果regexp命令后面有参数matchVar和subMatchVar,则所有的参数被当作变量名,如果变量不存在,就会被生成。
regexp把匹配整个正规表达式的子字符串赋给第一个变量,匹配正规表达式的最左边的子表达式的子字符串赋给第二个变
量,依次类推,例如:
regexp { ([0-9]+) *([a-z]+)} " there is 100 apples" total num word 1
都将成为普通字符,失去其特殊意义,Tcl解释器不会对其作特殊处理。
二、Tcl变量数据类型
Tcl只支持一种数据类型:字符串(string)。所有的命令,命令的所有的参数,命令的结果,所有的变量都是字符串。请牢记
这一点,所有的东西都是字符串。(然而字符串的实际解释是依赖于其所处上下文。它有三种形式:命令, 表达式和表)。
符串,然后把结果存到变量varName中,注意除了空格和TAB键之外,string 和formatsting中的字符和'%'必须匹配。例如:
scan "some 26 34" "some %d %d" a b

Tcl语言参考

Tcl语言参考

Tcl语言参考Tcl("Tool Command Language",即工具命令语言;Tcl念作"tickle"即“踢叩” )是一种简单易用易于扩展的嵌入式脚本语言, 主要用于发布命令给交互式程序(如文本编辑器、调试器),及完成自动化批处理工作。

Tcl语言不同于其他语言的最大的特点是:Tcl程序由Tcl命令序列组成,其每条语句都是一条指令。

由于其极易扩展的特性,Tcl有大量的用C/C++编写的扩展用于提供Tcl本身不具有的功能。

其中使用最广泛的扩展是TK,TK提供了各种OS平台下的图形用户界面GUI(连强大的Python语言都不单独提供自己的GUI,而是提供接口适配到TK上)。

另一个流行的扩展包是Expect,它提供了通过终端自动执行命令的能力,例如passwd, ftp, telnet等命令驱动的外壳。

一、Tcl程序基本结构1、基本语法Tcl的语法类似于shell:一条Tcl的命令串包含若干条命令,命令使用换行符或分号来隔开;而每一条命令包含若干个域(field),域使用空白(空格或TAB)来隔开——第一个域是命令的名字,其它的域是该命令的参数。

Tcl解释器对一个命令的执行过程分为两步:分析阶段和执行阶段。

在分析阶段,Tcl 解释器运用规则识别出命令并把命令分成一个个独立的单词,同时进行必要的置换(substitution);在执行阶段,Tcl 解释器会把第一个单词当作命令名,并查看这个命令是否有定义,如果有定义就激活这个命令对应的C/C++过程,并把所有后面的单词作为参数传递给该命令过程,让命令过程进行处理。

Tcl解释器既可以执行Tcl内建命令亦可执行用户自己通过C/C++函数实现的新建命令,在应用程序中可用函数Tcl_CreateCommand来完成命令的创建。

所有命令参数都被作为字符串来传递,命令自己会按其所需来解释参数。

另外关于Tcl的注释有一个特殊的要求:'#'必须出现在Tcl解释器期望命令的第一个字符出现的地方,才被当作注释。

tcl.tk语言介绍

tcl.tk语言介绍

第 9 页
●简单易学
2011-12-27
Tcl语言简单易学,与C语言的风格有相似的流程控制语句,支持过程化结 构。但它也有其本身的风格特点。如隐含了数据类型,即没有了字符,整数, 浮点,数组等的差别,全为统一的变量。变量间赋值仍有数据类型间的强制 或缺省转换。取消了变量的定义,在程序体的任何部分,都可顺手“抓来” 变量。 如果用户有C语言的基础,注意一下Tcl的变量定义方法,花一天的时间, 即可基本掌握。没有Windows编程经验的的人(你完全可以没有X-Windows或 MS Windows Windows的概念),也可在几天之内,参照一些范例程序编出跨平台的 ) Windows窗口程序来。 正如每一种语言都以“Hello World”做为其第一个程序, 让我们看看 Tcl/Tk 的“Hello World”: button .b -text "Hello World!" -command exit pack .b 这简简单单的两行命令,就已经实现了一个窗口程序所具有的全部功能 并且它还可以不加任何修改地运行在X-Windows和MS Windows系统上。
2011-12-27
变量置换:它由一个$符号标记,变量置换会导致变量的值插入一个单词符号中。 例如: set y $x+100 //y的值是10+100,这里x被置换成它的值10 这时,y的值还不是我们想要的值110,而是10+100,因为TC解释器把10+100看成 是一个字符串而不是表达式,y要想得到值110,还必须用命令置换,使得TCL会把 10+100看成一个表达式并求值。 命令置换:命令置换是由[]括起来的TCL命令及其参数,命令置换会导致某一个命 令的所有或部分单词符号被另一个命令的结果所代替。例如: set y [expr $x+100] //y的值是110,这里x被置换成它的值10,然后expr命 令会把10+100作为表达式求值,为110。

python中tk用法 -回复

python中tk用法 -回复

python中tk用法-回复Python是一种功能强大的编程语言,它提供了许多库和框架来帮助开发人员快速构建应用程序和图形用户界面(GUI)。

其中,Tkinter是Python 中最常用的GUI库之一。

在本文中,我们将一步一步地回答关于Tkinter 的用法和功能的问题。

1. 什么是Tkinter?Tkinter是Python标准库的一部分,它提供了创建和管理GUI应用程序所需的所有工具和功能。

它是用Tcl/Tk库编写的,这是一个被广泛使用的GUI工具包。

2. 如何导入Tkinter?在Python中,要使用Tkinter,我们首先需要导入这个库。

通常,我们使用以下语句导入Tkinter:import tkinter as tk这将使我们能够使用"tk"作为Tkinter的别名,并在代码中方便地引用它的功能。

3. 如何创建一个窗口?要创建一个窗口,我们需要使用Tkinter的Tk()类。

以下是一个简单的示例:import tkinter as tkwindow = ()window.mainloop()在上面的代码中,我们首先创建了一个Tk对象,然后调用mainloop()方法来保持窗口的持续显示。

4. 如何添加组件到窗口中?要在窗口中添加组件(如按钮、标签、文本框等),我们可以使用Tkinter 中的各种类。

以下是一个示例代码,演示如何添加一个标签和一个按钮:import tkinter as tkwindow = ()label = bel(window, text="Hello, World!")label.pack()button = tk.Button(window, text="Click Me!")button.pack()window.mainloop()在上面的代码中,我们首先创建了一个标签(Label)和一个按钮(Button),然后使用pack()方法将它们添加到窗口中。

一种高效的可扩展的GUI开发工具—Tcl/Tk

一种高效的可扩展的GUI开发工具—Tcl/Tk

一种高效的可扩展的GUI开发工具—T cl/Tk第27誊第4期西南民族学院学报?自然科学版journalofS’outhwestUniversityforNationalities.NaturalScienceEdition文章编号i0tl3.2843c2001】04—0402-04一种高效的可扩展的GUI开发工具——Tcl/Tk刘莉.马丽,伍珂l西南艮袭学院计算机科学与技丰学院,成都51004112中国联通四)¨分公司,成都610036, 摘要:Tcl/Tk是一种简明,高效,可移植性好的具有C/C++应用编程接口的编程语言.本文介绍其特点,优势和结构,并详细描述了如何用C语言创建新的Tc】/rrk命令关键词:tcL/tk;图形用户界面(GUI);解释器中图分类号:TP311.1文献标识码:A1Tcl/『k的特点本文讨论两个称为Tcl和Tk的包,它们提供了一个开发和利用图形用户界面(GU1)的应用程序编程系统Tel代表”toolcommand[anguage”,读为”tickle”,是一个用于控制和扩展程序的简单的脚本语言,它提供一般的对各种应用程序有用的编程环境,比如:变量,循环,子程序等而且,Td是可嵌人的:它的解释程序是作为一个c子程序库来实现的,可以很容易地和应用程序组合成一体,并且每个应用程序都可以通过扩展其所特有的的命令来扩展1’cl核心.Tcl一个撮有用的扩展是Tk,它是xWindow系统的工具包,读为”tee-key”Tk通过增加建立用户接口命令来扩展Tc[核心,使用户可以通过写Tcl脚本而不用写c代码来创建motif用户接口.与Td相同,Tk也是作为一个c子程序库来实现的,所以它也可以用于各种不同的应用程序中各个应用程序也可以用c 编写的Tk的用户接Vl构件(widgets)和geometrymanagers来扩展Tk基础特征Tel/Tk为应用程序开发者和用户提供了四个方面的好处:第一.Tcl为应用程序提供了一功能强大的脚本语言,应用程序所需要做的就是实现一些新的提供应用程序基本特征的Tel命令,然后把这些程序同Td解释程序相链接以提供一个全功能脚本语言,它既包含了Tel所提供的命令(称为Telc0re)又包含了由应用程序所实现的那些命令.例如,一个阅读电子公告板的应用程序包含实现一个查询电子公告板的Tcl命令的C源代码,以及另一个提取给定信息的Tcl命令.一旦这些命令存在以后,我们就可以写出Td脚本来循环地从所有的电子公告板中获取新信息并且每次显示一条,或者在磁盘文件中记录哪些信息已经被读哪些还没有?或者从一个或更多的电子公告板中查找某个特定主题的信息这些电子公告板应用程序将不必用c来实现这些附加的函数;它们可以作为Tcl脚本来写,应用程序的用户们还可以写出其它的Tcl脚本来为应用程序添加更多的函数. Td厂rk的第二个好处在于它的快速的开发速度许多有趣的窗口应用程序可以完全用TcL 脚本来写而不用一点c代码,通过使用一个称为wish的窗口shell米完成这就使用户比用c或c++编程高了一个级别,它为用户隐藏了许多c程序员必须强调的细节,与完全用c编程的工具包相比,比如Xt/Motif,使用Tcl/Tk所需要学习的东西更少,所需要写的代码也更少,Tcl/Tk的新手在学习几个小时后就可以创建有趣的用户接口许多人在从其它工具包转向Tcl/Tk后,代码量和开发时阃减少了十倍另一个Tcl/Tk快速开发的原因是Tcl是一个解释性的语言,当使用象wish这样的Tcl应用程序时,用户可以临时地生成和执行新的脚本而不需要重新编译或重启应用程序,这允许用户迅速地检验新的想法和确定bug当然,由于Tcl是解释型的,它的执行速度比编译后的c代码要慢得多但是现在的工作平台速度都非常快,只有在少数的情况下,当性能成为问题时,用户可用C来重新实现Tcl脚本中影响性能的最关键的部分.TcI的第三个好处是它成为了一种极好的”胶水语言”,因为它是可嵌人的,它可以在许多不同的程序中用于收稿日期:2001.09—03作者简介:刘莉(1965一).女,西南民族学院计算机学院讲师第4期刘莉等:一种高效的可扩展的GUI开发工具——Tcl,rk403各种不同的目的这样的话,那么写出结合所有程序特征的Td脚本就成为可能例如,任何建立在Tk基础上的窗口应用程序可以向其它的Tk应用程序发布一个Tel脚本这个特点使得多媒体效应更加容易达到:一旦用T_k建立了音频的和视频的应用程序,任何Tk应用程序都可以向它们发出”record”和”play”命令另外,电子数据表也可以由数据库应用程序来更新它自己,用户接口编辑器可以修改正运行的活动的应用程序的外观和性能等等,Tcl提供了允许应用程序一起工作的混合语言Tcl的第四个好处是使用的方便性.一旦一个用户了解了Tel/I’k后,他只需学会用于新的应用程序的几个特定的命令,就能写出该Tcl/I’k应用程序的脚本来,这就使更多的用户能够提高和个性化他们的程序正如每一种语言都以”Helloworld1,做为其第一个程序,让我们看看Tel/rk的”Helloworld”: buttonb—text”HelloWorldcommandexitpab程序的运行结果是:这简简单单的两行命令,就已经实现了一个窗口程序所具有的全部功能,并且它还可以不加任何修改地运行在X—Windows和MSWindows系统上.用鼠标点击该按纽或按空格键,该窗13将关闭,程序将退出.2用C语言创建新的Tcl/Tk命令T[:l门rk中易于增加用C/C++实现的新命令用C/C++的原因有两个,一个是因为用C/C++实现比Tcl/rk实现的效率要高些,另一方面是因为有些应用无法用T[:l/rk实现,例如与硬件相关的设备的编程接13就不能用Tcl脚本存取一种创建新的Td命令的方法是写出标准的独立的C子程序,并用Tel的exec命令来运行这些程序还有一种方法是把Td看成为一个c程序库,该库很容易集成到现有的应用程序中,通过掭加Tel解释器,你可以用Tcl脚本来配置和控制你的应用程序,再通过用Tk为程序提供一个更好的图形界面,这是Tcl最有独创性的模式.本文讨论第二种方式.首先,我们先了解一些相关的内容和例程,然后再实现新的TcI命令2.1应用程序的结构包含Tel解释器的应用程序的总体结构如图所示l’l上电YburrApcad.TU_____JCTclC代码库实现了解释器和set,while,proc之类的核心Tel命令,应用程序所特有的命令则用C/C++语言实现并注册为解释器中命令,当T_cl脚本中用到这些应用程序特定的命令时,解释器将调用这些C代码命令子程序命令子程序是在你的应用程序所能做的工作之上的有代表性的薄薄的一层.最后,你可以在C/C++中用Tcl—Eval函数直接调用TcI/Tk命令22TclMain和Tcl—ApplnitTcl库通过Fcl—Main函数来支持基本的应用结构,该函数由main程序调用,它完成三方面的工作:(1)建一个包含所有标准Tcl命令(如:set,proc等)的解释器,同时也定义了几个象argc,a瑁v 这样的Td变量,它们包含有传递给你的应用程序的命令行参数西南民族学院学报?自然科学版第27卷(2)调用Tel—Applnit函数,该函数不属于Tel库.由你的应用程序提供该函数.在Tcl—Applnit 中,你可以注册应用程序特有的Tcl命令(3)它读人一个脚本或进入一个交互式的循环中类似地,Tk—Main也具有同样的功能由于TkMain包含了Tel—Main,若你使用到了Tk命令,则只需要调用Tk—Main3用C语言创建自己的Tel命令创建自己的Td命令相对比较容易,当然,你需要存取Tel/Tk的库和头文件以及使用C和C++的编译器最简单的方法就是在main()函数中调用TelMain(),如下面的eqcmdc程所示.eqcmd.c程序用C创建了一个新的Tcl命令从Tel的观点看,该命令称为Eq.调用TclCre~teCommand函数把命令名”Eq”和C函数Eqcmd()相连接,程序代码如下#inc[ude”stdioh”#include”stdlib,h”#include”telh”/*实现了一个名为Eq的Tel命令.它比较两个参数看是否相等,相等时返回值1,否则返回0*/ intEqC~d(ClientDataclientDataTcl—Interpinterp,intargc.charargvlJ){if(argc!=3)}interp一&gt;result=“wrong#args”:retumTCL—ERROR;*fif(strcmp(argv[1],argv[2]):=0)interp一&gt;result=“l”:lelse{interp一&gt;result:…0’;returnTCL一0KintTelApplnit(Tcllnterpinterp)/*该函数注册一个新的Tel命令*/mtstatus;status:Tcl—lnit(interp);/*初始化Tcl/Tk*/if(status!=TCLOK)}returnTCLERROR:Tel—Cre~teCommand(interp,”Ecj”,(TelCmclProc*)EqCmd,(ClientData)NULL,(Tel—Cmd—DeleteProc*)NUII);/*把C函数EqCmd注册为一个Tel命令Eq*/TcI—RcFileName=“~/.myapptel”;/*定义启动文件名.程序如果运行在交互式环境下,该文件将被读人intmaln(intargc,char**argv)第4期刘莉等:一种高效的可扩展的GUI开发工具——Tc1/1_k405/*把命令行参数传给Tcl—Main(),它将调用TdApplnit函数*/TclMain(argc,argv,TclApplnit)return0:编译运行以上程序后,你可以像其他Tcl命令那样在脚本中调用Eq命令EqabcclefOEql1lsetW.dig;setw2dlgokEq$wok$w214结束语“小巧,易学,高效,跨平台执行”是Tcl语言特点的集中体现.实际上,Tcl不仅仅在开发小的应用程序上有其快速,可维护强的优势,在大的应用系统方面,如操作系统及网络管理,测试系统,自控,仿真,可视化应用,计算机辅助设计等都有丰富的应用成果在商业应用方面,如SYBASE公司花费上千万美金的数据库自适应测试系统,Cygnus公司着名的集软件工程管理,源代码控制于一体的SourceNavigator,以及CayenneSoft的协同工作组件ObjectTeam等等都是应用Tcl/Tk开发的.本文的目的就是期望该工具在国内得到更广泛的使用参考文献[1]OusterhoutJKTdondTkToolkit.Addis[~一WesleyPuNishingCompany.1994[2]Welch】BPracticalProgranmlirlgiaTdandTkPrentice-HallPTR.1995[3]陆步飞,Tcl/rk大垒.中国互动出版剐htro://wwwchinapub AnEfficientExtensibleGUIDevelopmentT00l|【it——cl/】LIULi,MALi,wuke2(1D印anmentComputerSdenceandTechnology,SouthwestUniversityForNationalities,Chengdu6100412ChinaUnitedTdecn~rnmunicationsCorporatien,SichuanBr0nch,Chengdu610036)Abstract:Tcl/Tkisaconcise,efficient,portableprogramminglanguagewithC/C++applicationprogra m—minginterface.Thispaperintroducesitsspecialities,advantages,architecture,andprovidesdetaileddes criptonofhowtocreateanewTc1厂rkoommandinCKeywords:Tcl/Tk;graphicaluserinterface;interpreter。

TCL-TK编程实践

TCL-TK编程实践

第3部分 TK基础23TK基本原理23.1TK中的Hello,World!我们的第一个Tk脚本非常简单。

它创建了一个按钮,当你点击它时,就向标准输出设备打印“Hello,World!”。

在按钮控件上方是一个由窗口管理器提供的标题栏,本例中在X视窗系统中是twm。

23.1.1例23-1 “Hello,World!”Tk程序第一行标识了脚本的解释器:如果此脚本象其它NUIX命令文件那样被调用,则这个特殊的行是必要的,第2节描述了如何设置脚本于不同的平台上。

在这个脚本中有两个TCL命令:一个用来创建按钮,一个用来使其在显示上可见。

bu tton命令创建一个按钮的实例:按钮的名字是.hello。

按钮上的标签是Hello,与此按钮相关联的命令是:pack命令将按钮映射到屏幕上。

并提供了一些堆叠参数,所以在按钮周围有空间。

当你将这两个命令键入wish中时,当button命令给出时,你不会看到任何东西。

然而,在pack命令之后,你将会看到空的主窗口将会收缩到足以容纳按钮和其添充空隙(padd ing)。

包装器的行为在第24和第25章进行深入的讨论。

Tk使用一种基本对象的系统来创建和命令控件。

与每一种小控件(如按钮)相关联的是一个用于创建此种类别控件实例的命令。

当小控件被创建时,一个作用在这个控件实例上的一个新的TCL命令就定义了。

例23-1创建了一个名为.hello的按钮,并且我们可以使用其名字作为一个TCL命令来操纵此按钮。

例如,我们可以使用此按钮高亮几次:或者,我们可以运行与此按钮相关联的命令:Tk有控件类和实例,但是它并不是完全面向对象的。

不可能去对一个控件类派生子类并继承。

相反,Tk,提供了非常灵活的控件,可以通过多种方式调节其外观。

资源数据库可以存储被许多控件共享的配置信息,并且新的类也可以被引入到组资源中。

控件行为通过使用分缓绑定的绑定标签得到共享。

Tk使用部件(composition)来组装共享行为和属性的控件。

tkinter概述

tkinter概述

tkinter概述
Tkinter是Python中的一个GUI(图形用户界面)工具包,是Python标准库中的一部分。

它提供了一组用于创建和管理GUI应用程序的工具和组件,包括窗口、按钮、文本框、标签、滚动条等。

Tkinter基于Tcl/Tk,一个跨平台的GUI工具包。

它允许开发者在不同的操作系统上创建相同的GUI应用程序,因为它使用了底层Tcl/Tk库的本地窗口系统。

Tkinter提供了一种简单的方式来构建GUI应用程序,它使用了面向对象的编程风格,开发者可以通过创建和操作Tkinter类的实例来构建和管理GUI界面。

Tkinter提供了丰富的控件和布局选项,开发者可以根据自己的需求选择合适的控件和布局来设计界面。

它还提供了事件处理机制,开发者可以为控件绑定事件和相应的处理函数,以实现用户交互和响应。

尽管Tkinter在功能和灵活性上可能不如其他GUI工具包(如Qt或wxPython),但它易于学习和使用,适用于快速开发小型GUI应用程序或原型。

此外,由于Tkinter是Python标准库的一部分,所以它无需额外安装即可在大多数Python环境中使用。

python tkinter 使用方法

python tkinter 使用方法

python tkinter 使用方法Python是一种非常流行的编程语言,拥有丰富的库和框架,使得开发人员可以轻松地构建各种应用程序和工具。

其中,Tkinter是Python的标准GUI库之一,提供了创建图形用户界面的工具和组件。

本文将介绍如何使用Python Tkinter创建GUI应用程序。

一、Tkinter的安装与导入我们需要确保Python已经安装在我们的计算机上。

然后,我们可以使用以下命令来安装Tkinter库:```pip install tkinter```安装完成后,我们可以在Python代码中导入Tkinter库:```import tkinter as tk```二、创建窗口在Tkinter中,我们可以使用`Tk`类来创建一个窗口对象。

下面是一个简单的例子,创建一个窗口并设置标题:```pythonimport tkinter as tkwindow = ()window.title("我的窗口")window.mainloop()```在上面的例子中,`window`是一个`Tk`对象,它代表了我们创建的窗口。

`title`方法用于设置窗口的标题。

`mainloop`方法用于启动窗口的事件循环,使窗口保持可见并对用户的交互作出响应。

三、添加组件在窗口中添加组件是创建GUI应用程序的关键步骤之一。

以下是几个常用的Tkinter组件的示例:1. 标签(Label):用于显示文本或图像。

```pythonlabel = bel(window, text="这是一个标签")label.pack()```在上面的例子中,我们创建了一个标签对象,并将其放置在窗口中。

2. 按钮(Button):用于触发特定的操作。

```pythondef button_click():print("按钮被点击了")button = tk.Button(window, text="点击我",command=button_click)button.pack()```在上面的例子中,我们创建了一个按钮对象,并将其放置在窗口中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
刘莉1 , 马丽1 , 伍珂2
(1. 西南民族学院计算机科学与技术学院 , 成都 610041 ; 2. 中国联通四川分公司 , 成都 610036)
摘要 : Tcl/ Tk 是一种简明 ,高效 ,可移植性好的具有 C/ C + + 应用编程接口的编程语言. 本文介绍其特点 、优 势和结构 ,并详细描述了如何用 C 语言创建新的 Tcl/ Tk 命令.
Tcl/ Tk 中易于增加用 C/ C + + 实现的新命令. 用 C/ C + + 的原因有两个 ,一个是因为用 C/ C + + 实现比 Tcl/ Tk 实现的效率要高些 ,另一方面是因为有些应用无法用 Tcl/ Tk 实现 ,例如与硬件相关的设备的编程接口就 不能用 Tcl 脚本存取.
一种创建新的 Tcl 命令的方法是写出标准的独立的 C 子程序 ,并用 Tcl 的 exec 命令来运行这些程序. 还有一 种方法是把 Tcl 看成为一个 C 程序库 ,该库很容易集成到现有的应用程序中 ,通过添加 Tcl 解释器 ,你可以用 Tcl 脚本来配置和控制你的应用程序 ,再通过用 Tk 为程序提供一个更好的图形界面 ,这是 Tcl 最有独创性的模式. 本 文讨论第二种方式. 首先 ,我们先了解一些相关的内容和例程 ,然后再实现新的 Tcl 命令. 2. 1 应用程序的结构
} int Tcl - App Init ( Tcl - Interp 3 interp) / 3 该函数注册一个新的 Tcl 命令 3 /
{ int stat us ; stat us = Tcl - Init (interp) ; / 3 初始化 Tcl/ Tk 3 / if (stat us ! = TCL - O K) { ret urn TCL - ERROR ; } Tcl - CreateCommand ( interp , “Eq”, ( Tcl - CmdProc 3 ) EqCmd , ( ClientData ) NULL , ( Tcl - Cmd2
包含 Tcl 解释器的应用程序的总体结构如图所示 :
Tcl C 代码库实现了解释器和 set ,while ,proc 之类的核心 Tcl 命令 ,应用程序所特有的命令则用 C/ C + + 语言实 现并注册为解释器中命令 ,当 Tcl 脚本中用到这些应用程序特定的命令时 ,解释器将调用这些 C 代码命令子程 序. 命令子程序是在你的应用程序所能做的工作之上的有代表性的薄薄的一层. 最后 ,你可以在 C/ C + + 中用 Tcl - Eval 函数直接调用 Tcl/ Tk 命令. 2. 2 Tcl - Main 和 Tcl - App Init
Tcl 库通过 Tcl - Main 函数来支持基本的应用结构 ,该函数由 main 程序调用 ,它完成三方面的工作 : (1) 建一个包含所有标准 Tcl 命令 (如 :set ,proc 等) 的解释器 ,同时也定义了几个象 argc ,argv 这样的 Tcl 变 量 ,它们包含有传递给你的应用程序的命令行参数. (2) 调用 Tcl - App Init 函数 ,该函数不属于 Tcl 库 ,由你的应用程序提供该函数 ,在 Tcl - App Init 中 ,你可以注
收稿日期 :2001209203 作者简介 :刘莉 (1965 - ) ,女 ,西南民族学院计算机学院讲师.
第 4 期 刘莉等 :一种高效的可扩展的 GU I 开发工具 ———Tcl/ Tk
403
各种不同的目的. 这样的话 ,那么写出结合所有程序特征的 Tcl 脚本就成为可能. 例如 ,任何建立在 Tk 基础上的 窗口应用程序可以向其它的 Tk 应用程序发布一个 Tcl 脚本. 这个特点使得多媒体效应更加容易达到 :一旦用 Tk 建立了音频的和视频的应用程序 ,任何 Tk 应用程序都可以向它们发出“record”和“play”命令. 另外 ,电子数据表 也可以由数据库应用程序来更新它自己 ,用户接口编辑器可以修改正运行的活动的应用程序的外观和性能等等 , Tcl 提供了允许应用程序一起工作的混合语言.
eqcmd. c 程序用 C 创建了一个新的 Tcl 命令. 从 Tcl 的观点看 ,该命令称为 Eq. 调用 Tcl - CreateCommand 函数把命令名“Eq”和 C 函数 Eqcmd ( ) 相连接 ,程序代码如下 : # include“st dio . h” # include“st dlib. h” # include“tcl. h” / 3 实现了一个名为 Eq 的 Tcl 命令 ,它比较两个参数看是否相等 ,相等时返回值 1 ,否则返回 0 3 / int EqCmd (ClientData clientData Tcl - Interp 3 interp , int argc , char 3 argv[ ]) {
pack. b 程序的运行结果是 :
这简简单单的两行命令 ,就已经实现了一个窗口程序所具有的全部功能 ,并且它还可以不加任何修改地运行 在 X - Windows 和 MS Windows 系统上. 用鼠标点击该按纽或按空格键 ,该窗口将关闭 ,程序将退出.
2 用 C 语言创建新的 Tcl/ Tk 命令
用 Tk - Main.

3 用 C 语言创建自己的 Tcl 命令
创建自己的 Tcl 命令相对比较容易 ,当然 ,你需要存取 Tcl/ Tk 的库和头文件以及使用 C 和 C + + 的编译器 , 最简单的方法就是在 main ( ) 函数中调用 Tcl - Main () ,如下面的 eqcmd. c 程所示.
关键词 :tcl/ t k ; 图形用户界面 ( GU I) ; 解释器 中图分类号 : TP311. 1 文献标识码 :A
1 Tcl/ Tk 的特点
本文讨论两个称为 Tcl 和 Tk 的包 ,它们提供了一个开发和利用图形用户界面 ( GU I) 的应用程序编程系统. Tcl 代表“tool command language”,读为“tickle”,是一个用于控制和扩展程序的简单的脚本语言 ,它提供一般的对 各种应用程序有用的编程环境 ,比如 :变量 ,循环 ,子程序等. 而且 , Tcl 是可嵌入的 :它的解释程序是作为一个 C 子程序库来实现的 ,可以很容易地和应用程序组合成一体 ,并且每个应用程序都可以通过扩展其所特有的的命令 来扩展 Tcl 核心.
Tcl/ Tk 为应用程序开发者和用户提供了四个方面的好处 : 第一 , Tcl 为应用程序提供了一功能强大的脚本语言 ,应用程序所需要做的就是实现一些新的提供应用程序 基本特征的 Tcl 命令 ,然后把这些程序同 Tcl 解释程序相链接以提供一个全功能脚本语言 ,它既包含了 Tcl 所提 供的命令 (称为 Tcl core) 又包含了由应用程序所实现的那些命令. 例如 ,一个阅读电子公告板的应用程序包含实现一个查询电子公告板的 Tcl 命令的 C 源代码 ,以及另一个提 取给定信息的 Tcl 命令. 一旦这些命令存在以后 ,我们就可以写出 Tcl 脚本来循环地从所有的电子公告板中获取 新信息并且每次显示一条 ,或者在磁盘文件中记录哪些信息已经被读哪些还没有 ? 或者从一个或更多的电子公 告板中查找某个特定主题的信息. 这些电子公告板应用程序将不必用 C 来实现这些附加的函数 ;它们可以作为 Tcl 脚本来写 ,应用程序的用户们还可以写出其它的 Tcl 脚本来为应用程序添加更多的函数. Tcl/ Tk 的第二个好处在于它的快速的开发速度. 许多有趣的窗口应用程序可以完全用 TcL 脚本来写而不用 一点 C 代码 ,通过使用一个称为 wish 的窗口 shell 来完成. 这就使用户比用 C 或 C + + 编程高了一个级别 ,它为 用户隐藏了许多 C 程序员必须强调的细节 ,与完全用 C 编程的工具包相比 ,比如 Xt/ Motif ,使用 Tcl/ Tk 所需要 学习的东西更少 ,所需要写的代码也更少 , Tcl/ Tk 的新手在学习几个小时后就可以创建有趣的用户接口. 许多人 在从其它工具包转向 Tcl/ Tk 后 ,代码量和开发时间减少了十倍. 另一个 Tcl/ Tk 快速开发的原因是 Tcl 是一个解释性的语言 ,当使用象 wish 这样的 Tcl 应用程序时 ,用户可 以临时地生成和执行新的脚本而不需要重新编译或重启应用程序 ,这允许用户迅速地检验新的想法和确定 bug. 当然 ,由于 Tcl 是解释型的 ,它的执行速度比编译后的 C 代码要慢得多. 但是现在的工作平台速度都非常快 ,只有 在少数的情况下 ,当性能成为问题时 ,用户可用 C 来重新实现 Tcl 脚本中影响性能的最关键的部分. Tcl 的第三个好处是它成为了一种极好的“胶水语言”,因为它是可嵌入的 ,它可以在许多不同的程序中用于
if (argc ! = 3) { interp - > result = “wrong # args”; ret urn TCL - ERROR ; }
if (st rcmp (argv[ 1 ] , argv[ 2 ]) = = 0) { interp - > result = “1”; } else { interp - > result = “0”; ret urn TCL - O K }
Tcl 一个最有用的扩展是 Tk ,它是 X Window 系统的工具包 ,读为“tee2key”. Tk 通过增加建立用户接口命令 来扩展 Tcl 核心 ,使用户可以通过写 Tcl 脚本而不用写 C 代码来创建 motif 用户接口. 与 Tcl 相同 , Tk 也是作为 一个 C 子程序库来实现的 ,所以它也可以用于各种不同的应用程序中. 各个应用程序也可以用 C 编写的 Tk 的用 户接口构件 (widgets) 和 geometry managers 来扩展 Tk 基础特征.
第 27 卷第 4 期
西南民族学院学报·自然科学版
相关文档
最新文档