在TclTK中找出小部件类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在TclTK中找出小部件类相关的知识,希望对你有一定的参考价值。

我在窗口中有几个按钮,我想改变所有的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列出的类值吗?

提前致谢!!!!

答案

winfo children只给你直接的孩子。如果您的任何按钮包含在例如帧,它们不会在列表中返回。

The wiki有代码来创建所有小部件的列表,无论深度如何:

proc wlist {{W .}} {
    set list [list $W]
    foreach w [winfo children $W] {
        set list [concat $list [wlist $w]]
    }
    return $list
}

以上是关于在TclTK中找出小部件类的主要内容,如果未能解决你的问题,请参考以下文章

如何更新导航抽屉中的有状态小部件,同时在 Android 中保持与片段相同的类?

此应用小部件片段中所有意图 (PendingIntents) 的逻辑流

Android小部件,启动一个片段?

如何在 tkinter 中找出当前小部件的大小?

如何在tkinter中找出当前的小部件大小?

在 vue.js 小部件中打开多个选项卡时找出活动选项卡的方法