我在一个小的perl / tk脚本中有两个listbox
es。当我点击一个,另一个&#34;失去焦点&#34;并点击了一个&#34;获得&#34;它。我把它放在引号中,因为不幸的是这些事件不会触发&#34; <FocusIn>
&#34;或&#34; <FocusOut>
&#34;。使用键盘(即tab
键)会触发这些键。我还尝试了<Enter>
/ <Leave>
和<B1-Enter>
/ <B1-Leave>
以及<<ListboxSelect>>
,但这些都没有实现我的需求。我列出了要触发的可用事件,但大多数都与键盘相关。
我需要的是在第二个Button
失去焦点时(即,点击第一个ListBox
时)禁用ListBox
,并在获得它时启用它老鼠。那我该怎么做呢?
答案 0 :(得分:1)
好的,我找到了一个可接受的解决方案:
my $tmp = ref $my_listbox;
$my_listbox->bind($tmp, '<<ListboxSelect>>', sub { &listbox_bind; } );
sub listbox_bind
{
my ($self) = @_;
if ($self == $my_listbox)
{ $my_button->configure( -state => 'normal' ); }
else
{ $my_button->configure( -state => 'disabled' ); }
}
希望能帮到那里的人。