湘攸客

Tcl中bind用法

0
阅读(12858)

Tcl/TK中可以用bind进行命令绑定,最近小试了一下,复杂的不会,弄几个简单的例子:


 

bind .t <Double-2> {.t delete 1.0 end};##绑定鼠标中键为清除text
bind .t <Control-a> {.t delete 1.0 end};##绑定Ctrl+A键为清除text
;###双击鼠标左键在entry里插入相应的内容
bind .numeratorValue <Double-1> { .numeratorValue delete 0 end; .numeratorValue insert insert 1048576 }
bind .denominatorValue <Double-1> { .denominatorValue delete 0 end; .denominatorValue insert insert 4096 }


 

####################################################################


 

上面举了几个例子,下面简单说说可以绑定的操作:


 

1、有关鼠标的绑定


 

      1)、左键:


 

                <Double-1>        :表示双击左键;


 

                <Triple-1>          :表示三击左键;


 

      2)、左键:


 

                <Double-2>        :表示双击中键;


 

                <Triple-2>          :表示三击中键;


 

      3)、左键:


 

                <Double-3>        :表示双击右键;


 

                <Triple-3>          :表示三击右键;


 

注:没有试出来如何绑定单击鼠标键。


 

2、键盘绑定,可以单键,也可以组合键,下面举例:


 

1)、<Enter>   :不是回车,而是鼠标光标的移动,第一个字母必须大写;


 

2)、 <Control-a> :Ctrl键+a,注意Control的第一个字母“c”必须大写;


 

3)、<Key-a>或者<Keypress-a> 或者<a>  :字母a键(区分大小写),当然a可以更改为任何其他键;
4)、<Motion> :和<Enter>一样,是鼠标光标移入目标区域;


 

5)、<Any-a>:这里用法的意思是任何带有a的操作都被绑定,例如按a和按Ctrl+a效果一样;


 

6)、<Alt-a>:Alt+a,第一个字母大写,这里要注意的是Ctrl键在tcl中只认“Control”,而Alt跟键盘对应;


 

7)、实验了一下Shift键也可以绑定,但是必须和上位符号或者大写字母绑定,比如<Shift-A>,而没有<Shift-a>;


 

8)、经过试验,Alt键还可以在tcl中用Mod1、Mod2、M2代替;


 

9)、<Lock-A>::Lock代替Caps Lock键,同Shift键,只和大写字母组合;


 

10)、<Leave>:和Motion相反,是鼠标光标移出目标区域;


 

11)、<Return>:这个才是键盘的回车键;


 

12)、<Escape>:Esc键;


 

13)、同理也可以绑定<F1>~<F12>,而且是单键绑定。