【发布时间】:2014-02-12 21:22:41
【问题描述】:
在 Tcl/Tk 在线参考中阅读 this entry 我遇到了这段文字:
组合框小部件还支持以下 ttk::entry 小部件 子命令(详见 ttk::entry(n)):
- bbox
- 删除
- 光标
- 索引
- 插入
- 选择
- xview
我知道在这个 Combobox 小部件的例子中,它部分由一个 Entry 小部件组成,但是子命令到底是如何使用的?
【问题讨论】:
标签: tcl tk subcommand
在 Tcl/Tk 在线参考中阅读 this entry 我遇到了这段文字:
组合框小部件还支持以下 ttk::entry 小部件 子命令(详见 ttk::entry(n)):
- bbox
- 删除
- 光标
- 索引
- 插入
- 选择
- xview
我知道在这个 Combobox 小部件的例子中,它部分由一个 Entry 小部件组成,但是子命令到底是如何使用的?
【问题讨论】:
标签: tcl tk subcommand
这是常见的 Tk 命令结构,您需要它来与任何 Tk 小部件进行交互。小部件的子命令是通过使用对象的路径名作为基本命令,然后是您想要的子命令来完成的。例如,
ttk::combobox .cb
.cb insert 0 "my text"
【讨论】:
显而易见的答案是,像这样:pathname subcommand ?arg...?,即您以路径名开始调用小部件(这是您创建小部件时生成的命令的名称),然后是子命令,然后是任何参数。
不过,我不确定这是否是您要问的问题。我错过了什么吗?
【讨论】:
子命令非常类似于对象系统的方法;对于 Tk 中的这些示例,您将对象(小部件)的名称作为一个参数,将方法的名称(子命令)作为下一个参数,以及之后所需的任何其他参数。
如果您点击该手册页上的链接,它将带您了解如何使用它们的确切说明。例如,它说 index 子命令与 ttk::entry 小部件所支持的完全一样,并且转到 that page 你会看到:
路径名 索引 索引
返回 index 对应的数字索引。
index 的定义在页面上方(并且可以更好地交叉引用,我接受)。
指数
许多 entry 小部件命令采用一个或多个索引作为参数。索引指定条目字符串中的特定字符,采用以下任一方式:
数字
将字符指定为数字索引,其中 0 对应于字符串中的第一个字符。@号码
在这种形式中,number 被视为条目窗口中的 x 坐标;跨越使用 x 坐标的字符。例如,“@0”表示窗口中最左边的字符。结束
指示条目字符串中最后一个字符之后的字符。这等效于指定一个与条目字符串长度相等的数字索引。插入
指示与插入光标相邻并紧随其后的字符。sel.first
指示选择中的第一个字符。如果选择不在输入窗口中,则使用此表单是错误的。sel.last
指示选择中最后一个字符之后的字符。如果选择不在输入窗口中,则使用此表单是错误的。缩写可用于上述任何形式,例如“e”或“sel.l”。通常,超出范围的索引会自动四舍五入到最接近的合法值。
一般来说,与方法相对应的子命令的洞察力相对容易应用(并且直接用于 Tcl 的主要对象系统中),尽管使用子子命令会有些棘手。实际上,该方法委托给一个内部对象进行调度。
【讨论】: