Tcl/Tk将任何小部件的更改绑定到脚本
这是一个关于Tk的一般性问题,因此请原谅我没有发布Tcl/Tk将任何小部件的更改绑定到脚本,tcl,tk,Tcl,Tk,这是一个关于Tk的一般性问题,因此请原谅我没有发布code。我编写了一个小型Tcl/Tk GUI,它由一个条目、两个CheckButton、一个radiobutton和一个button小部件组成。当这些小部件中的任何一个发生变化时,我需要运行一个特定的过程来检查所有小部件的状态并执行一些操作。比如当选中checkbutton或在条目小部件中键入某个内容时,等等 我可以通过使用特定于小部件的选项来实现所需的行为,如checkbutton的-command和radiobutton,以及entry的-
code
。我编写了一个小型Tcl/Tk GUI,它由一个条目、两个CheckButton、一个radiobutton和一个button小部件组成。当这些小部件中的任何一个发生变化时,我需要运行一个特定的过程来检查所有小部件的状态并执行一些操作。比如当选中checkbutton或在条目小部件中键入某个内容时,等等
我可以通过使用特定于小部件的选项来实现所需的行为,如checkbutton
的-command
和radiobutton
,以及entry
的-validatecommand
等等。我在这个实现中遇到的问题是,它不是非常透明和可读的
是否可以使用bind
命令或其他方法来调用小部件更改上的脚本
注意:我意识到我可以绑定
和
之类的东西,但我只想在小部件实际更改时触发脚本
感谢您使用-variable和-textvariable选项(后者用于输入,前者用于复选按钮和单选按钮)。让支持所有小部件的变量成为同一数组的成员。然后对整个数组使用
跟踪
,以处理变量更新
array set ::form {entry "" flag 0}
entry .entry -textvariable ::form(entry)
checkbutton .flag -variable ::form(flag)
proc handle_update {name1 name2 op} {
# something changed
# <your code here>
}
trace add variable ::form write handle_update
数组集::表单{entry”“标志0}
entry.entry-textvariable::form(entry)
checkbutton.flag-变量::表单(flag)
proc handle_update{name1 name2 op}{
#有些事改变了
#
}
跟踪添加变量::表单写入句柄\u更新
非常感谢<代码>跟踪是关键,以前没有查看过。