如何解决检索 tcl/tk 应用程序布局结构
有没有办法从 tcl/tk 应用程序中检索 GUI 布局的树结构?我正在尝试检索屏幕布局,以便将其转换为 html/电子应用程序。
任何建议都会很好。
解决方法
使用winfo children
和基本递归可以得到widget层次结构的基本结构:
proc dumpStructure {{w .} {indent ""}} {
puts "$indent[winfo class $w] $w"
foreach configItem [$w configure] {
lassign $configItem name - - def value
if {$def ne $value && $name ne "-command"} {
# Note: we've excluded things that are set to the default and
# also the -command callbacks because they usually look messy
puts "$indent $name $value"
}
}
foreach child [winfo children $w] {
dumpStructure $child "$indent "
}
}
请注意如何使用每个小部件的 configure
方法来获取有关其设置方式的所有信息,除了 text
和 canvas
小部件要复杂得多。 (如果找不到可接受的替代方案,您可能需要重新开发它们。)几何管理配置更棘手,因为几何管理器没有太多通用代码(以及 text
和 {{1 }} 在这方面特别,但其他一些也是如此)。
菜单是它们自己的特例,但在实践中可能很容易映射。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。