Как отключить привязки клавиатуры для виджета Perl Tk :: Text? - PullRequest
0 голосов
/ 26 июня 2018

Я включаю виджет прокручиваемого текстового поля в моем главном окне Tk, которое я настроил для перехвата любых нажатий клавиш следующим образом:

use Tk;
use Tk::ROText; # read-only version of Text widget

$mw = new Tk::MainWindow;
$textBox = $mw->Scrolled('ROText', -scrollbars =>'e')->grid();
$mw->bind('<Any-KeyPress>' => \&key_handler);

#Attempts to disable key bindings of text widget
#$textBox->bind('<Any-KeyPress>' => sub {});
#$textBox->bindtags(undef);

Tk::MainLoop;

sub key_handler {
    $count++;
    $textBox->insert('end', "key press #$count\n");
}

Виджет Текст имеет связку клавиш по умолчанию,среди них перемещение курсора с помощью клавиш со стрелками.Я хочу отключить это поведение, так как хочу выполнить некоторые другие действия на основе клавиш со стрелками.

Я пробовал $textBox->bind('Any-KeyPress' => sub {}); и $textBox->bindtags(undef); на основе предложенных решений, которые я нашел в Интернете, но ни один из них не отключил бы курсордвижение внутри текстового поля.Я по-прежнему получаю нежелательное движение курсора в дополнение к требуемым key_handler вызовам.

Есть ли другие предложения относительно того, как можно отключить привязки клавиатуры виджета Текст?

...