在Python中通过Tkinter执行Tcl命令

很多人可能不知道Tcl这门脚本程序语言。

但不少人知道Tkinter这个用于在Python中开发GUI程序的模块。

然而很少有人意识到Tkinter的存在使得在Python中执行Tcl命令变成一件简单的事情。

Python + Tcl

(图片来自 https://www.scriptol.com/)

Tcl through Tkinter in Python

下面是在Python中通过Tkinter模块执行Tcl命令的示例。

Python 2.7.9 (default, Mar  1 2015, 18:22:53)

>>> import Tkinter
>>> Tkinter.TclVersion
8.6
>>> tcl = Tkinter.Tcl()
>>> tcl.setvar("abc", 123)
>>> tcl.getvar("abc")
123
>>> tcl.eval("set abc 456")
'456'
>>> tcl.getvar("abc")
'456'
>>>

其实主要就是五个命令

  • tcl = Tkinter.Tcl() 创建一个Tcl解释器
  • tcl.setvar("abc", 123) 用于设置Tcl变量
  • tcl.getvar("abc")用与获取Tcl变量值
  • tcl.eval("tcl command") 用于执行Tcl命令
  • tcl.evalfile("test.tcl") 用于执行Tcl脚本

用Python作为Tcl/Tk解释器

如果你喜欢或者需要用Tcl/Tk进行开发,在手头没有Tcl/Tk解释器的情况下。Python里的Tkinter模块给我们提供了一种新的可能。

鉴于Python目前的流行度远大于Tcl语言,这种可能性使得Tcl/Tk开发者也许可以让自己的Tcl/Tk程序通过船上Python的外衣来进行发布。

主程序main.py只需要通过Tkinter调用执行main.tcl即可。示例代码如下:

import Tkinter
Tkinter.Tcl().evalfile("main.tcl")