问题描述
想法是如何打开事件按钮旁边的弹出窗口-获取Onclick鼠标光标位置
就是这样,当单击桌面上的任意位置时,应在鼠标指针位置的Tcl/Tk
中调用该程序。此Tcl/Tk
t程序应没有绣花,窗框。
我知道我在2017年时做得很好,当时我使用Tcl/Tk 8.4
仅显示不带框架的tk窗口。
现在我不记得我是怎么做到的,我需要别人的帮助来清除我的想法。
解决方法
要获取鼠标指针的当前绝对位置,请使用winfo pointerxy $w
($w
用于确定您在X11上要说的是哪个“显示”,这是无关紧要的。这些天;您实际上可以在那里使用任何窗口,但是无论如何它都是必需的参数。
要将(顶级)窗口移动到指针,请设置其几何形状。结合两者,您将得到:
proc movewintoptr w {
lassign [winfo pointerxy $w] x y
wm geometry $w +$x+$y
}
您可能需要考虑稍微偏移窗口。 (确切的说,如何做到最好取决于您在窗口中显示的内容;代码具有特定于应用程序的功能。)
要创建没有装饰的顶级窗口,请执行以下操作:
toplevel $w
wm overrideredirect $w 1
请注意,默认情况下,用户无法轻松地操纵未修饰的窗口。您必须自己实现所有部分(如果相关)。
是的,wm overrideredirect
调用应该在创建顶层之后不久。窗口一旦在屏幕上显示,通常就无法在它们之间进行切换(这取决于窗口管理器的工作方式等)。