Как мне обрабатывать нажатия кнопок в объектах Gtk2 :: Image? - PullRequest
1 голос
/ 21 марта 2010

Я пытался получить объект Gtk2::Image в этом приложении Perl Gtk2, чтобы реагировать на нажатия кнопок, но безрезультатно. Изображение показывает, как ожидалось, но события кнопки не обрабатываются. Что мне не хватает?

<code>  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;

1 Ответ

4 голосов
/ 21 марта 2010

GtkImage не имеет связанных с ним окон; другими словами, он не реагирует ни на одно событие X (обычно заканчивающееся -event).

Обычным способом обработки событий в этих виджетах является с использованием GtkEventBox, то есть размещение виджета GtkImage внутри GtkEventBox и подключение сигналов X к этому GtkEventBox.

...