Tcl/Tk快速直观

[ Next: 基本的 Tk 对应 Tkinter | Previous: Tkinter 类别概述 | 内容 ]


Tcl/Tk快速直观

这一节会含括进来是因为很不幸的大部分的Tkinter文件都会以Tk的线上文件及John Ousterhout的书中的格式来呈现,为了使用这些参考资料,有时你必须知道如何阅读Tk的小单元及确认Tk命令的各种部份。(详见 基本的 Tk 对应 Tkinter 这篇底下所列的tkinter对等的基础。)

Tk 命令稿是Tcl 程式,向所有的 Tcl 程式一样,Tk 命令稿只是由空格分隔的符号列表,Tk 元件只是它的类别,选项 帮助设定,而 actions 可以让它作有意义的事。

要在Tk中产生一个元件,命令的格式像这样:

类别命令 新的路径名称 选项

类别命令
指示要产生哪一类的元件(按钮、标签、选单…)
新的路径名称
是这个元件新的名称,在Tk里的名称都是独一的,为了帮助坚持这规定,Tk中的元件用路径名称来命名,就像档案系统的档案一样,顶层的元件,root被称作 “.” (句号) 其子元件用更多的句号来区隔,举个例: .myApp.controlPanel.okButton 就是一个元件的名称。
选项
配置元件的外观以及在某些情形下配置他的行为,选项的格式可以是一系列的旗标及值,旗标会用 `-‘来进行就像unix shell command 旗标而当值有一个字以上时则用引号来放入。

举例:

button       .fred -fg red -text “hi there”
^                ^    \______________/
|                 |                   |
类别命令    新元件           选项(-opt val -opt val …)

元件一旦建立,拥有路径名称的元件会成为一个新的命令,新的元件命令是程式设计师用来处理新的元件来执行某些的动作,在C语言中,你可以表示成这样someAction(fred, someOptions),在C++里你可以这样表示 fred.someAction(someOptions),而在Tk下可以这样表示:

.fred someAction someOptions

注意物件名称 .fred会用句号开始。

正如你所想的,someAction 合法的值要看元件的类别:.fred disable 在fred是个按钮时是可以运作的(fred 会变成灰色),但如果fred是标签则不能运作(停用标签在Tk中不支援)。

someOptions 的值也是依赖动作,有些动作像 disable, 不需要参数,其他像文字输入盒的 delete 命令会需要参数来指定多少的文字要删除, (不幸的是,John Ousterhout 交互使用这两个术语 “widget command” 及”action”(p 154),在实务中不会造成混淆,但对于初学者则有可能乱七八糟的。)

Comments are closed.