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),在实务中不会造成混淆,但对于初学者则有可能乱七八糟的。)
3 則留言
Comments are closed.