Binding 窗口状态绑定?(Tcl/Tk)

Binding 窗口状态绑定?(Tcl/Tk),binding,tcl,tk,Binding,Tcl,Tk,我想为顶级窗口状态创建一个绑定,以便在窗口是否处于全屏模式(缩放状态)时执行命令。我一直在寻找如何做到这一点,我遇到了以下帖子: 我现在基本上也在做同样的事情。这个问题是3年前发布的,是否有任何更新允许Tk处理最大化按钮?如果没有,有人能解释一下下面的代码是做什么的吗 bind $toplvl <Configure> { if {"%W" eq [winfo toplevel "%W"]} { ActOnResize %W %w %h [wm attribut

我想为顶级窗口状态创建一个绑定,以便在窗口是否处于全屏模式(缩放状态)时执行命令。我一直在寻找如何做到这一点,我遇到了以下帖子:

我现在基本上也在做同样的事情。这个问题是3年前发布的,是否有任何更新允许Tk处理最大化按钮?如果没有,有人能解释一下下面的代码是做什么的吗

bind $toplvl <Configure> {
    if {"%W" eq [winfo toplevel "%W"]} {
        ActOnResize %W %w %h [wm attributes %W -zoomed]
    }
}
bind$toplvl{
如果{“%W”eq[winfo顶级“%W”]}{
ActnResize%W%W%h[wm属性%W-缩放]
}
}

好的,让我们一行一行地看这三条“有趣”的线

bind $toplvl <Configure> {
首先,
%W
将替换为事件发送到的小部件的名称。这一行将事件传递给实际的toplevel小部件作为后续操作的条件,这很有用,因为toplevel还接收发送给其所有子部件的事件(对于绑定热键很好,对于其他事件则不太好)

这将调用命令
ActOnResize
,传入四个参数:(toplevel)小部件名称、新宽度、新高度,以及toplevel是否缩放(必须通过调用
wm attributes
来检索)

高级别摘要
每当顶层更改大小或相对于其父窗口(逻辑上是桌面根窗口)移动时,调用
ActOnResize
,传入其新大小和一个布尔值,指示是否已最大化。

感谢您的精彩透彻的解释,这里真是太棒了!
if {"%W" eq [winfo toplevel "%W"]} {
ActOnResize %W %w %h [wm attributes %W -zoomed]