如何在Perl Tk中绑定<tab>键?

时间:2016-03-28 12:41:26

标签: perl

我正在寻找绑定<Tab&gt;的代码语法将按键事件发送到Perl Tk Widget。

通过阅读文档,我看到我可以绑定<Control><Alt>(以及任意组合),但无法找到<Tab>键绑定。

我已经尝试...->bind('<Tab>', sub{...});,但它没有用。

如何绑定它?

1 个答案:

答案 0 :(得分:2)

在挖掘了这个问题一段时间后,并探讨评论中提供的所有好建议。我发现实现我的目的的最好方法是派生Widget并创建我自己的自定义小部件,并使用OOP覆盖技术来控制行为。

这就像魅力一样。

因此,对于Tk::Text,原生<Tab>事件将绑定到

$mw->bind($class,'<Tab>', 'insertTab');

sub insertTab
{
     my ($w) = @_;
     $w->Insert("\t");
     $w->focus;
     $w->break
}

通过从Tk::Text小部件派生到我自己的Tk::myText小部件,我能够覆盖insertTab方法,如下所示:

sub insertTab
{
    my ($w) = @_;

    // <-- place my stuff here 
    // <-- to be executed first

    $w->SUPER::insertTab();  // <-- then call the original <Tab> handler from the parent
}