更新内容:
http://vtcl.tcltk.cn
- tkvideo 的 -stretch 参数默认设置为 1,添加部件后无需手工更改。
- 更多的 Tile 部件。
- button
- checkbutton
- checkbox,
- combobox
- entry
- frame
- label
- labelframe
- menubutton
- progressbar
- radiobutton
- scrollbar
- separator
- treeview
- 修正无法保存 Visual Tcl Binary 窗口位置,再次运行时向右移位的问题。
-
其他 bug 修正。
http://vtcl.tcltk.cn
![]() |
2008/6/19
Visual Tcl 等于 Glade -- 论 vtcl 的正确使用方式。
许多朋友都觉得 Visual
Tcl 生成的代码纷乱繁杂,只适合写一些小的项目,很难手工修改并且和其他代码结合编写大型程序。其实这是对 vtcl
作者设计本意的误解。就我的经验来说,vtcl 是 Tcl/Tk 应用程序界面快速开发的上上之选,在我经历的大大小小的项目中作为主力
GUI 创建工具从未出过问题,因为可能许多人都不经意间忽略了 vtcl 最重要的功能不是作为 IDE,而是 ---像 Glade
那样使用 vtcl 才是正确方式。奇怪吗?其实一点也不,你只要将 vtcl 当作是一个与 Glade
差不多的,只是功能稍强一些的界面编辑器就可以了。千万不要因为 vtcl 有直接增加函数的功能就诱惑自己用 vtcl
写太多的代码,那才是噩梦的开始。
下面是为了让大家更舒服地使用 Visual Tcl 的两条建议:
这里你可能要问了,要怎样混合并调用外部代码呢?下面是个例子,很简单,只分三步:
一、用文本编辑器创建一个名为 hello.tcl 的文件,内容如下:
二、用 vtcl 创建一个新的窗体,在里边放置一个按钮部件。 双击该按钮,在弹出的命令编辑窗口中输入 hello::showMsg。
三、输入以下命令,生成一个名为 demo.tcl 的新文件。hello.tcl 在文件前部,gui.tcl 被添加到 demo.tcl 后部。
现在 wish demo.tcl 一下,点击刚才新添加的按钮,看看是不是弹出 “Hello, World!” 的问候了? :-)
可为什么要这样?简单的讲,好处是你可以根据不同 .tcl 模块之间的依赖顺序执行第三步,这样就能把一大堆分属不同模块的 .tcl 文件整合成一个单独的 .tcl 文件,这是发布软件时的一个好方法,尤其是准备将程序作为一个商业软件发布是更是如此。至少不会让破解者各个击破,或是遇到用 tclcompiler 加密混淆大量的 .tcl 到 .tbc 的麻烦了。当然,最好是写一个 Makefile 来简化操作。
下面是为了让大家更舒服地使用 Visual Tcl 的两条建议:
- 除非你真的是在编写一个小的程序,否则还是尽可能把 vtcl 生成的文件命名为 gui.tcl 吧。当然这只是一个约定,不是强制的。
- gui.tcl 中除了对外部代码必要的调用和添加一些初始化过程,尽可能少的自行添加其他函数。
这里你可能要问了,要怎样混合并调用外部代码呢?下面是个例子,很简单,只分三步:
一、用文本编辑器创建一个名为 hello.tcl 的文件,内容如下:
namespace eval hello
{
proc showMsg
{}
{
tk_messageBox -message "Hello, World!"
}
}
}
二、用 vtcl 创建一个新的窗体,在里边放置一个按钮部件。 双击该按钮,在弹出的命令编辑窗口中输入 hello::showMsg。
三、输入以下命令,生成一个名为 demo.tcl 的新文件。hello.tcl 在文件前部,gui.tcl 被添加到 demo.tcl 后部。
$cat hello.tcl >
demo.tcl
$cat gui.tcl >> demo.tcl
$cat gui.tcl >> demo.tcl
现在 wish demo.tcl 一下,点击刚才新添加的按钮,看看是不是弹出 “Hello, World!” 的问候了?
可为什么要这样?简单的讲,好处是你可以根据不同 .tcl 模块之间的依赖顺序执行第三步,这样就能把一大堆分属不同模块的 .tcl 文件整合成一个单独的 .tcl 文件,这是发布软件时的一个好方法,尤其是准备将程序作为一个商业软件发布是更是如此。至少不会让破解者各个击破,或是遇到用 tclcompiler 加密混淆大量的 .tcl 到 .tbc 的麻烦了。当然,最好是写一个 Makefile 来简化操作。

浙公网安备 33010602011771号