Tcl Tk Introduction
Tcl Tk Introduction
摘要Abstract:Tcl/Tck脚本可以很容易实现用户自定义的命令,方便的创建图形化的用户界面GUI,所以Tcl和Tk的应用领域几乎覆盖了图形和工程应用的全部范围,包括计算机辅助设计、软件开发、测试、仪器控制、科学可视化及多媒体方面。即可以使用Tcl/Tk实现AVEVA中的PML类似的功能,允许用户自己编写简单程序实现程序的二次开发。
关键字Key Words:AVEVA, PDMS, PML, Tcl/Tk, Script Modeling
一、PML of AVEVA
看到AVEVA的解决方案中有一个方便灵活的用户自定义语言PML(the AVEVA Programmable Macro Language),通过PML可以根据不同的用户需求来对程序进行扩展,而AVEVA则可以专注于核心模块的开发与完善。这对软件开发而言,是很有益处的,可以在满足各种用户多变的需求的情况下保证软件的质量。使用PML实现一个简单的窗口代码及效果如下图所示:
Figure 1.1 Hello World Form code of PML
Figure 1.2 A simple Form of PML
二、Tcl/Tk
Tcl表示“Tool Command Language”。在学习OpenCascade的过程中,看到OpenCascade的一个测试工具Draw Test Harness就是使用了Tcl/Tk来实现自定义的命令。通过自定义的命令,即可以对一些功能进行测试,如下图所示,使用简单命令,即可以生成图形:
Figure 2.1 Draw Test Harness with Tcl/Tk
Netgen是一个用于网格剖分的程序,它的用户界面也是用Tcl/Tk来实现的,效果也不错,如下图所示:
Figure 2.2 Pipe Model in Netgen
三、结论 Conclusion
Tcl和Tk一起为应用程序开发者和使用者提供了很多好处。首先是快速开发。很多有意思的应用程序完全可以用Tcl脚本编写。这样就可以在比C/C++或Java更高的层次上进行开发,Tk隐藏了C或Java程序员必须关注的很多细节。与低级工具相比,要使用Tcl和Tk所需要学习的知识更少,需要编写的代码更少。通过几个小时的学习,Tcl/Tk新手用户就可以创建有意思的用户界面,很多开发人员从其他工具集转而使用Tcl和Tk工具集后,应用程序开发所需要的代码数量和开发时间都减少了90%。
Tcl和Tk适于快速开发的另一个原因在于Tcl是解释语言,使用Tcl应用程序时,可以在运行中生成和使用新脚本,而无需重新编译和重启应用程序。
Tcl可以跨平台,这意味着在一个平台如Linux上开发的程序,在大多数情况下可以不加改动的在另一个平台上运行,如在Windows上或Macintosh上运行。
Tcl还是第一种拥有原生Unicode支持的动态语言。因此,Tcl可以处理这个世界上几乎所有的书面语言。
使用Tcl的另一个显著优点在于它和它的大多数扩展都是免费的开源软件,允许所有人免费下载、查看、修改及再发布。
另外,Tcl还可以让应用程序很容易地拥有强大的脚本功能。例如为要一个已经存在的程序添加脚本功能,您只需要实现几条新的Tcl命令,用来为应用程序提供相应的基本功能。然后,把您的新命令和Tcl库链接起来生成全功能的脚本语言,该语言就包含了Tcl提供的命令和您编写的那些命令。
Tcl还为用户提供了方便。一旦学习了Tcl/Tk就能为任何Tcl和Tk应用程序编写脚本,只需要学习该应用程序特有的少数几条命令即可。这使得更多的用户有能力对应用程序进行个性化改造和强化。
如果不借助别的软件自己来实现一个AVEVA中的PML类似的功能,可能要涉及很多知识,如编译原理,计算机系统等很多很多,编写出来的程序即使能用,可能质量也不好。正如荀子所言:“君子性非异也,善假于物也”;牛顿也说“我不知道在别人看来,我是什么样的人;但在我自己看来,我不过就像是一个在海滨玩耍的小孩,为不时发现比寻常更为光滑的一块卵石或比寻常更为美丽的一片贝壳而沾沾自喜,而对于展现在我面前的浩瀚的真理的海洋,却全然没有发现。如果说我比别人看得更远些,那是因为我站在了巨人的肩上。”如果借助于巨人的力量,使用Tcl就可以方便的实现PML类似的功能,现在需要做的就是对前人知识的学习与使用。
PDF Version: Tcl Tk Introduction
Tcl Tk Introduction的更多相关文章
- python INFO: Can't locate Tcl/Tk libs and/or headers
安装opencv的时候遇到这个错误: python INFO: Can't locate Tcl/Tk libs and/or headers 参考如下文章解决这个问题: http://www.ver ...
- freewrap——将tcl/tk脚本转变为可执行文件
FreeWrap可以把TCL/TK的脚本和二进制文件打包成应用程序,FreeWrap将所有的文件组合成一个单独的可执行文件. FreeWrap的原理是把脚本和tcl/tk解释器和库文件都打包 ...
- tcl/tk demo
环境及版本说明: OSX10.9 tclsh -> tclsh8.5 wish -> wish8.5 查看本机运行环境: which wish; 2 /usr/bin/wish which ...
- 用Tcl/Tk脚本计算圆周率
读了阮一峰的蒙特卡罗方法入门,用概率统计的方式求解棘手的数学问题还挺有意思的,尤其是利用正方形和它的内切圆之间的面积关系来建模求解圆周率的方法精巧又简单,比投针实验好理解也好实现多了.建模可不是M ...
- Tcl/tk缩放Truetype字体时的精度问题
最近有国内新客户抱怨我们产品显示的原理图太不专业了,在原理图上使用宋体GB2312设计好中文图表,经过几次缩放时,表格内的文字居然会跑到表格外边,更要命的是打印出来的文档也存在同样的问题. 我研究了一 ...
- linux下ruby使用tcl/tk编程环境设置
正常情况下最新的ruby都是不带tcl/tk选项编译的,所以我们在运行tcl/tk代码时都会发生找不到tk库的错误.解决办法很简单只要以tcl/tk选项编译ruby即可. 这里以ubuntu 15.0 ...
- Mac OS X下让ruby支持tcl/tk
我记得在老早在OS X10.8下使用ruby1.9.x的时候只要到下载安装ActiveTcl8.5,没怎么配置就运行tk好好的.但是近日想重新执行下tk代码,发现在require 'tk'的时候就报错 ...
- pgtksh -- PostgreSQL Tcl/Tk shell 客户端
SYNOPSIS pgtksh [filename [argument...]] DESCRIPTION 描述 pgtksh 是一个带有 PostgreSQL 数据库访问函数扩展的 Tcl/Tk sh ...
- tcl/tk实例详解——glob使用例解
glob命令 这里以实例的形式解释一下glob命令的用法,很多时候纯粹的语法讲解根本讲不清楚,往往没有一个例子清晰,一下就glob命令进行一些分析,环境为Tclsh85,操作系统为windows XP ...
随机推荐
- javascript练习-定义子类
function defineSubclass(superclass, //父类的构造函数 constructor, //新的子类的构造函数 methods, //实例方法:复制至原型中 static ...
- 使用Statement操作数据库
i import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql ...
- js基础知识:变量
一.什么是变量? 在JavaScript中,变量用来存放值的,存放任何数据类型的值都可以,它就是值的容器. 二.变量怎么用? (一)用var声明1个变量 在使用变量之前,需要var关键字来声明变量,变 ...
- css长度值与颜色值
颜色值 在网页中的颜色设置是非常重要的,有字体颜色,背景颜色,边框颜色等,设置颜色的方法也有很多种: 1.英文命令颜色 p{color:red;} 2.rgb颜色 p{color:rgb(133,45 ...
- [poi2007] biu
题意:给定一个图,点n<=105,边m<=106,现在求它的补图有多少个联通分量.. 思路:很容易想到并查集,但是补图边太多了.. 于是只能优化掉一些多余的边.. 具体做法是用队列优化.. ...
- unity 状态机 + svn + 码云 上篇
最近刚找到在实习,忙于公司一个c++ 项目 ,一直想写博客来着,没时间写今天熬夜打算先献上自己前几天自己封装的一个fsm状态机 话不多说,直接上正题,这篇博客主要是在学校的时候状态机一直使用的是pla ...
- 搭建coreseek(sphinx+mmseg3)详细安装配置+php之sphinx扩展安装+php调用示例
http://blog.csdn.net/e421083458/article/details/21529969 常用的命令 ps -ef|grep searchd 如果你开了search服务后,你命 ...
- 【TextBox】重写右键菜单
参考资料 http://bbs.csdn.net/topics/390324356 http://www.cnblogs.com/ycxy/archive/2012/10/09/2716852.htm ...
- Jexus V5.8.2 正式发布,强劲的高性能 web 服务器
Jexus 是一款运行于 Linux 平台,以支持 ASP.NET.PHP 为特色的集高安全性和高性能为一体的 WEB 服务器和反向代理服务器.最新版 5.8.2 已经发布. 有如下更新: 1,新增 ...
- [后端人员耍前端系列]Bootstrap篇:30分钟快速掌握Bootstrap
一.引言 很久没有写过博客了,但是最近这段时间都没有闲着,接触了很多方面.比如一些前端框架和组件.还有移动开发React-Native.以及对.NET框架设计的一些重新认识.这些内容在接下来的时间都会 ...