gpt4 book ai didi

windows - 当窗口改变位置时如何执行特定代码?

转载 作者:可可西里 更新时间:2023-11-01 10:36:08 25 4
gpt4 key购买 nike

我想在用户单击窗口标题装饰并将鼠标拖动到新位置时移动窗口时执行特定代码。

命令“wm 协议(protocol)窗口?名称??命令?”用于管理窗口管理器消息,如 WM_DELETE_WINDOW。移动窗口后,尝试以下代码不会执行任何操作。

package require Tk

wm title . "move test"
wm protocol . WM_MOVE {puts "window has been moved!"}

Tk 似乎不知道消息 WM_MOVE 所以它忽略了它。但是捕获 WM_DELETE_WINDOW 消息而不是 WM_MOVE 上面的代码有效。

我错过了什么吗?是否有另一种方法以编程方式对窗口位置的变化使用react?

最佳答案

窗口位置应通过常规事件报告,即 <Configure>事件。尝试做:

bind . <Configure> {puts x=%x,y=%y,width=%w,height=%h}

然后移动并调整 . 的大小 window ;您应该看到每个操作的事件。请注意,事件并不一定意味着移动;调整大小也会生成它们。与顶层上的任何绑定(bind)一样,您应该注意它不会针对其子小部件之一进行报告(请查看 %W 来解决这个问题)。你可能会发现 %X%Y优于%x%y ;实验……

关于windows - 当窗口改变位置时如何执行特定代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25549364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com