我一直试图在这个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;
答案 0 :(得分:4)
GtkImage没有与之关联的窗口;换句话说,它不会对任何X事件做出反应(通常是以-event
结尾的事件。)
处理这些小部件上的事件的常用方法是using GtkEventBox
,即将GtkImage
窗口小部件放在GtkEventBox
内,并将X事件信号连接到此GtkEventBox
。