Tcl/Tk小部件路径名的长度或嵌套是否有限制?

Tcl/Tk小部件路径名的长度或嵌套是否有限制?,tcl,limit,tk,pathname,Tcl,Limit,Tk,Pathname,Tcl/Tk小部件路径名的长度或嵌套是否有限制 例如: ttk::button .a.b.c -text "Hello World" pack .a.b.c 在容器内创建按钮.a.b.c.a.b,该按钮位于.a,等等。标识符名称和嵌套级别是否有限制?例如,如果我这样重写它: ttk::button .extralonga.extralongb.extralongc -text "Hello World" pack .extralonga.extralongb.extralongc 在遇到问题

Tcl/Tk小部件路径名的长度或嵌套是否有限制

例如:

ttk::button .a.b.c -text "Hello World"
pack .a.b.c
在容器内创建按钮
.a.b.c
.a.b,该按钮位于
.a
,等等。标识符名称和嵌套级别是否有限制?例如,如果我这样重写它:

ttk::button .extralonga.extralongb.extralongc -text "Hello World"
pack .extralonga.extralongb.extralongc

在遇到问题之前我能走多久?

Tk本身根本没有这样的限制(尽管如果最终使用大量内存,可能会出现问题)

我想底层的图形层可能会施加限制,但我从未遇到过。(请注意,从该层的角度来看,只有顶层中的路径才是最重要的。)我想,在达到任何现有限制之前,您很可能会创建一个不可行的混乱和不切实际的GUI;我倾向于将筑巢水平保持在相当小的水平;在这方面,使用
grid
而不是
pack
会有所帮助,制作交互小部件指导顶层的子级,并使用几何体管理器的
-in
选项来正确设置。事实上,我认为在与小部件的父/子关系方面唯一正确的事情是需要剪辑的地方;在传统知识中,孩子们被父母剪短。(如果您使用
文本
画布
来创建不同类型的可滚动区域,或者使用
ttk::notebook
在一个区域上覆盖多个小部件,这一点很重要。)


总结:先担心其他问题,好吗?

Tk/TTk开发人员不喜欢引入人为的限制,因此没有机会将“名称太长”/“嵌套太深”作为错误。深度嵌套会降低速度(依赖于平台和配置,因此必须进行测试),并且会为每个具有绑定的事件复制完整的wigdet路径名(因此,兆字节长的名称不是一个好主意)。