【问题标题】:How are subcommands used in Tcl/Tk?Tcl/Tk 中如何使用子命令?
【发布时间】:2014-02-12 21:22:41
【问题描述】:

在 Tcl/Tk 在线参考中阅读 this entry 我遇到了这段文字:

组合框小部件还支持以下 ttk::entry 小部件 子命令(详见 ttk::entry(n)):

  • bbox
  • 删除
  • 光标
  • 索引
  • 插入
  • 选择
  • xview

我知道在这个 Combobox 小部件的例子中,它部分由一个 Entry 小部件组成,但是子命令到底是如何使用的?

【问题讨论】:

    标签: tcl tk subcommand


    【解决方案1】:

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

    ttk::combobox .cb
    .cb insert 0 "my text"
    

    【讨论】:

    • 嗯,好的,谢谢。因此,子命令是可以与传递给子小部件的小部件一起使用的命令。我刚刚测试过,效果很好!
    • 不,一般来说,它更像是一个小部件命令识别和作用的关键字。 (通常)不涉及子小部件,尽管在组合框的情况下,可能会将其视为组合框委派子命令到其入口组件。但这更多的是例外而不是规则。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      子命令非常类似于对象系统的方法;对于 Tk 中的这些示例,您将对象(小部件)的名称作为一个参数,将方法的名称(子命令)作为下一个参数,以及之后所需的任何其他参数。

      如果您点击该手册页上的链接,它将带您了解如何使用它们的确切说明。例如,它说 index 子命令与 ttk::entry 小部件所支持的完全一样,并且转到 that page 你会看到:

      路径名 索引 索引
      返回 index 对应的数字索引。

      index 的定义在页面上方(并且可以更好地交叉引用,我接受)。

      指数

      许多 entry 小部件命令采用一个或多个索引作为参数。索引指定条目字符串中的特定字符,采用以下任一方式:

      数字
      将字符指定为数字索引,其中 0 对应于字符串中的第一个字符。

      @号码
      在这种形式中,number 被视为条目窗口中的 x 坐标;跨越使用 x 坐标的字符。例如,“@0”表示窗口中最左边的字符。

      结束
      指示条目字符串中最后一个字符之后的字符。这等效于指定一个与条目字符串长度相等的数字索引。

      插入
      指示与插入光标相邻并紧随其后的字符。

      sel.first
      指示选择中的第一个字符。如果选择不在输入窗口中,则使用此表单是错误的。

      sel.last
      指示选择中最后一个字符之后的字符。如果选择不在输入窗口中,则使用此表单是错误的。

      缩写可用于上述任何形式,例如“e”或“sel.l”。通常,超出范围的索引会自动四舍五入到最接近的合法值。

      一般来说,与方法相对应的子命令的洞察力相对容易应用(并且直接用于 Tcl 的主要对象系统中),尽管使用子子命令会有些棘手。实际上,该方法委托给一个内部对象进行调度。

      【讨论】:

      • 让手动摘录在 Markdown 中看起来合理是非常困难的!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      相关资源
      最近更新 更多