<Tab
> keypressイベントをPerl Tkウィジェットにバインドするコードの構文を探しています。バインドする方法<Tab> Perl Tkでキーを押しますか?
ドキュメントを読むと、<Control>
と<Alt>
(と任意の組み合わせ)をバインドできますが、<Tab>
キーバインディングが見つかりませんでした。
私は...->bind('<Tab>', sub{...});
を試しましたが、動作しませんでした。
どのようにバインドするのですか?
<Tab
> keypressイベントをPerl Tkウィジェットにバインドするコードの構文を探しています。バインドする方法<Tab> Perl Tkでキーを押しますか?
ドキュメントを読むと、<Control>
と<Alt>
(と任意の組み合わせ)をバインドできますが、<Tab>
キーバインディングが見つかりませんでした。
私は...->bind('<Tab>', sub{...});
を試しましたが、動作しませんでした。
どのようにバインドするのですか?
この問題をしばらく掘り下げ、コメントに記載されているすべてのアドバイスを検討してください。ウィジェットを派生させて独自のカスタムウィジェットを作成し、その動作を制御するためにOOPオーバーライド技術を使用することが私の目的を達成する最良の方法であることがわかった。
これは魅力的です。
のでTk::Text
のために、例えば、ネイティブ<Tab>
イベントが
$mw->bind($class,'<Tab>', 'insertTab');
sub insertTab
{
my ($w) = @_;
$w->Insert("\t");
$w->focus;
$w->break
}
にバインドされており、次のように自分のTk::myText
ウィジェットにTk::Text
ウィジェットから派生させることによって、私は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
}
参考[Python Tkinter - 元のデフォルトのキーバインディングを復元する](http://stackoverflow.com/questions/21468106/python-tkinter-recovering-original-default-key-binding) –
@HåkonHægland:perlやpythonを扱うリンクですか? – NirMH
@NirMH:リンクはPython言語を使用しています。しかし、Tk APIはかなり統一されており、Perlの言葉で書かれていることを解釈できるはずです。または、あなたのために書かれた正確なコードが欲しいですか? – Borodin