2013-12-24 2 views
1

Я пытаюсь связать свои Введите кнопку на моей клавиатуре. Я пишу в Perl Tk.Привязка клавиши возврата не работает

Я хочу, чтобы одна из ближайших вещей произошла.

  1. Когда я нажимаю «Enter» на моей клавиатуре, я хочу, чтобы в моей программе была кнопка для работы.
  2. Когда я нажимаю «Enter» на моей клавиатуре, я хочу запустить подпрограмму. Либо один удовлетворит мою программу, увидев, что моя кнопка открывает подпрограмму.

Вот мой соответствующий код:

# Button 
my $enterbut = $find_sub->Button(
    -command => \&find_substations, 
    -text => 'Find Displays', 
    -background => 'gray' 
)->pack(
    -side => 'left', 
    -fill => 'none', 
    -ipadx => 8, 
    -ipady => 1 
); 

# Accept "Enter" key as input 
$enterbut->bind('<Return>', \&find_substations); 

# Output Substation ID to Pane 
sub find_substations { 
    print; 
} 

Я попробовал несколько различных способов использования команды связывания и ни один из них не работает.

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

ответ

2

Вы связываете Введите на свою кнопку. Он фиксируется только при нажатии кнопки. Если вы привяжете его ко всему окну, нажмите . Введите в любом месте окна, чтобы выполнить функцию обработчика.