tcl / tk按钮或顶级路径名约定

时间:2010-09-26 20:11:35

标签: tcl tk

当在TK中创建新的顶层或按钮时,需要输入路径名。 我看到了一个基本代码,如下所示:

toplevel .a
...
button .a.b ...

我的问题是: 点的处理方式与字母不同吗?它们是某种层次结构分隔符,它们会创建父子关系吗?我查看了wiki TK并且未能找到答案。 非常感谢, -Lior

3 个答案:

答案 0 :(得分:3)

正如其他答案所述,点用于表示层次结构,就像/或\用于表示文件系统层次结构一样。

严格来说,将小部件放在层次结构中是不必要的。这样做的一个优点是几何管理器(例如grid和pack)默认管理其父母中的孩子。例如,'pack .a.b.c'将在窗口小部件.a.b中打包窗口小部件a.b.c.这样可以轻松进行简单的布局。

在许多情况下,通过告知网格和包装应放置一个孩子的容器,可以实现相同的效果。例如,'pack .c -in .a.b'将小部件.c放在容器.a.b中。这让你可以保持层次结构浅,并使重构更容易。

有关tk基础知识的详细介绍,请参阅http://www.beedub.com/book/2nd/TKINTRO.doc.html

答案 1 :(得分:2)

是的,他们是!例如,它们将框架与作为小部件的内容分开:

set f [frame .hello]
button $f.b -text "Hello button"

pack $f.b

pack $f

正如您在此示例中所看到的,f被评估为变量,而不是f.b

你也可以写包$ {f} .b但这不是必需的,因为看到点不是变量的一部分。

答案 2 :(得分:1)

是的 - 它适用于层次结构。请查看有关该主题的TkDocs

  

作为根的孩子的框架被命名为“.c”。我们可以用几乎任何东西代替“c”,例如命名为“.content”。此名称纯粹供您的程序使用,因此最好选择有意义的内容。作为框架子项的控件被赋予“.c.feet”,“。c.meters”,“。c.flbl”之类的名称,依此类推。如果在层次结构的更深层次上有任何小部件,我们将添加另一个“。”然后是一个唯一的标识符。