我在窗口中有几个按钮,我想更改所有的pady值。我能做到:
foreach a [list b1 b2 b3 ... bn] {
grid configure $a -pady 2
}
但这很慢,因为我必须查找所有路径,如果我更改接口,那么我必须手动更新列表。所以我在考虑做:
foreach a [winfo children $win] {
if {[winfo class $a] == "TButton"} {
grid configure $a -pady 2
}
}
但我无法在任何地方找到小部件的类。我可以在TclTk中做到这一点吗?如果是的话,是否有人可以向我指出winfo class widget_path
的类值列表?
先谢谢!!!!
答案 0 :(得分:0)
winfo children
只给你直接的孩子。如果您的任何按钮包含在例如帧,它们不会在列表中返回。
The wiki包含创建所有小部件列表的代码,无论深度如何:
proc wlist {{W .}} {
set list [list $W]
foreach w [winfo children $W] {
set list [concat $list [wlist $w]]
}
return $list
}