1

我正在尝试将我的Enter按钮绑定在我的键盘上。我正在用 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;
}

我尝试了几种不同的方式来使用 bind 命令,但都没有奏效。

我没有收到任何错误,但是当我按下按钮时,我的 sub 没有运行。我开始相信Return可能不是我键盘上的正确按钮。也许是由于驱动程序语言或其他原因。可能是编码错误。

4

1 回答 1

2

您正在绑定Enter您的按钮。仅当您的按钮获得焦点时才会捕获它。如果将其绑定在整个窗口上,则在窗口Enter中的任意位置按下都应该执行处理程序函数。

于 2013-12-24T15:48:34.767 回答