如何在tcl中绑定鼠标右键事件到proc?

问题描述 投票:0回答:1

我正在开发基于Linux的GUI工具。
我有下面的代码。 (tcl脚本)

proc Kuser {} {
  echo "AAA" 
}

proc getxy_of_mouse_pointer {} {
  gui_mouse_tool -window Layout.1 -start POINT_DEFINITION_TOOL
  bind . <Button-1> [kuser]
  echo "Hello"
}

“gui_mosue_tool”是该工具的内置过程。
在工具中执行如下所示的proc时,
“Hello”立即输出,无需等待 Button-1
工具 > getxy_of_mouse_pointer

AAA
你好

我想在单击鼠标右键时运行 Kuser-proc
我认为bind~部分需要修改。
但我不知道该怎么办。

绑定、事件、添加等...

tcl tk-toolkit
1个回答
1
投票

[Kuser]
bind
参数是一个脚本替换 - 它表示:“运行此脚本并用脚本的结果替换
[...]
”。因此,在解析
bind
命令的参数后,运行的绑定命令是:

bind . <Button-1> {}

(假设

echo
命令不返回任何内容,因此
Kuser
)。

您想要为

bind
命令提供事件发生时要运行的命令的 name,而不是运行该命令的结果:

bind . <Button-1> Kuser
© www.soinside.com 2019 - 2024. All rights reserved.