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