0

在阅读Tcl/Tk 在线参考中的这个条目时,我遇到了这一段,它指出:

组合框小部件还支持以下 ttk::entry 小部件子命令(有关详细信息,请参见 ttk::entry(n)):

  • 盒子
  • 删除
  • 光标
  • 指数
  • 插入
  • 选择
  • xview

我知道在 Combobox 小部件的这种情况下,它部分由一个 Entry 小部件组成,但子命令究竟是如何使用的?

4

3 回答 3

3

这是常见的 Tk 命令结构,您需要它来与任何 Tk 小部件进行交互。小部件的子命令是通过使用对象的路径名作为基本命令,然后是您想要的子命令来完成的。例如,

ttk::combobox .cb
.cb insert 0 "my text"
于 2014-02-12T22:31:53.230 回答
1

显而易见的答案是,像这样:路径 名子命令arg ...?,即从小部件的路径名开始调用(这是创建小部件时生成的命令的名称),然后是子命令,然后是任何参数。

但是,我不确定这是否是您要问的。我错过了什么吗?

于 2014-02-12T22:19:29.817 回答
0

子命令非常类似于对象系统的方法。对于 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 的主要对象系统),尽管使用子子命令会有些棘手。实际上,该方法委托给一个内部对象进行分派。

于 2014-02-13T09:35:00.370 回答