1

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

  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)做出反应。

处理这些小部件上的事件的常用方法是使用GtkEventBox,即将GtkImage小部件放在 a中GtkEventBox并将 X 事件信号连接到 this GtkEventBox

于 2010-03-21T18:44:32.317 回答