1

私はGtk2::ImageこのPerlGtk2アプリケーションでオブジェクトを取得して、ボタンの押下に反応するようにしようとしてきましたが、役に立ちませんでした。画像は期待どおりに表示されますが、ボタンイベントは処理されません。私は何が欠けていますか?

  my $img = Gtk2::Image->new_from_file( $file );
  $img->set_property( sensitive => 1 );
  $img->can_focus( 1 );
  $img->set_events([qw/ button-press-mask button-release-mask /]);
  $img->signal_connect(
    'button-press-event' => sub {
      my ( $self, $event ) = @_;
      print STDERR "Coords: ", $event->get_coords;
      return;
    });
  $window->add( $img );
  $window->show_all;

4

1 に答える 1

4

GtkImageにはウィンドウが関連付けられていません。つまり、Xイベント(通常、で終わるイベント)には反応しません-event

これらのウィジェットでイベントを処理する一般的な方法は、を使用GtkEventBoxGtkImageすることです。つまり、ウィジェットをa内に配置し、GtkEventBoxXイベント信号をこれに接続しますGtkEventBox

于 2010-03-21T18:44:32.317 に答える