TCL\TK 调整大小 window : 绑定
TCL\TK Resize window : bind
我在调整 window 大小时遇到问题,我不明白为什么,当我移动我的 window .
我的另一个 window 使用 .c bind cir <1> [list window %x %y]
不要关注我window.
我相信我必须使用 <Configure>
作为选项,但我不知道该怎么做
感谢您的帮助
我的代码如下:
proc window {crx cry} {
set w1 .win
catch {destroy $w1}
toplevel $w1
wm minsize $w1 300 100
wm maxsize $w1 300 100
label $w1.l -text "$crx $cry"
pack $w1.l
}
wm state . zoomed
canvas .c -bg ivory
.c create oval 2 1.5 25 25 -fill #33FF00 -tag cir
.c create oval 30 30 50 50 -fill #33FF00 -tag cir1
.c create oval 60 60 90 90 -fill #33FF00 -tag cir2
.c create oval 90 90 130 130 -fill #33FF00 -tag cir3
pack .c -fill both -expand 1
.c bind cir <1> [list window %x %y]
.c bind cir1 <1> [list window %x %y]
.c bind cir2 <1> [list window %x %y]
.c bind cir3 <1> [list window %x %y]
一般来说,让一整组 windows 一起移动是糟糕的 GUI 设计;它使用户感到困惑。也就是说……
每当小部件被“重新配置”时,<Configure>
事件就会被发送到小部件,现在大多数情况下这意味着它的位置 相对于其父级 和大小发生了变化.你必须使用主 bind
命令,如果你 bind
到顶层,你需要记住顶层默认也会监听非顶层子级生成的事件;你通常需要一些过滤。
bind . <Configure> {
if {"%W" eq [winfo toplevel %W]} {
puts "reconfigured %W: (%x,%y) %wx%h"
}
}
获得所需的过滤事件后,计算更新后的几何形状并将它们应用到 wm geometry
。
我在调整 window 大小时遇到问题,我不明白为什么,当我移动我的 window .
我的另一个 window 使用 .c bind cir <1> [list window %x %y]
不要关注我window.
我相信我必须使用 <Configure>
作为选项,但我不知道该怎么做
感谢您的帮助
我的代码如下:
proc window {crx cry} {
set w1 .win
catch {destroy $w1}
toplevel $w1
wm minsize $w1 300 100
wm maxsize $w1 300 100
label $w1.l -text "$crx $cry"
pack $w1.l
}
wm state . zoomed
canvas .c -bg ivory
.c create oval 2 1.5 25 25 -fill #33FF00 -tag cir
.c create oval 30 30 50 50 -fill #33FF00 -tag cir1
.c create oval 60 60 90 90 -fill #33FF00 -tag cir2
.c create oval 90 90 130 130 -fill #33FF00 -tag cir3
pack .c -fill both -expand 1
.c bind cir <1> [list window %x %y]
.c bind cir1 <1> [list window %x %y]
.c bind cir2 <1> [list window %x %y]
.c bind cir3 <1> [list window %x %y]
一般来说,让一整组 windows 一起移动是糟糕的 GUI 设计;它使用户感到困惑。也就是说……
每当小部件被“重新配置”时,<Configure>
事件就会被发送到小部件,现在大多数情况下这意味着它的位置 相对于其父级 和大小发生了变化.你必须使用主 bind
命令,如果你 bind
到顶层,你需要记住顶层默认也会监听非顶层子级生成的事件;你通常需要一些过滤。
bind . <Configure> {
if {"%W" eq [winfo toplevel %W]} {
puts "reconfigured %W: (%x,%y) %wx%h"
}
}
获得所需的过滤事件后,计算更新后的几何形状并将它们应用到 wm geometry
。