如何在Gtk2 :: Image对象中处理按钮按下?

时间:2010-03-21 17:12:25

标签: perl gtk gtk2

我一直试图在这个Perl Gtk2应用程序中获得一个Gtk2::Image对象来对按钮按下做出反应,但无济于事。图像显示为预期但按钮事件无法处理。我错过了什么?

  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 个答案:

答案 0 :(得分:4)

GtkImage没有与之关联的窗口;换句话说,它不会对任何X事件做出反应(通常是以-event结尾的事件。)

处理这些小部件上的事件的常用方法是using GtkEventBox,即将GtkImage窗口小部件放在GtkEventBox内,并将X事件信号连接到此GtkEventBox