Wie gehe ich mit Drücken von Tasten in Gtk2 :: Bildobjekte?
Frage
Ich habe versucht, ein Gtk2::Image
Objekt in diesem Perl Gtk2 Anwendung zu erhalten, auf Tastendruck zu reagieren, aber ohne Erfolg. Das Bild zeigt, wie erwartet, aber die Schaltfläche Ereignisse werden nicht behandelt. Was vermisse ich?
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;
Lösung
GtkImage hat keine Fenster zugeordnet; mit anderen Worten reagiert es nicht auf ein X-Ereignis (in der Regel diejenigen, die mit -event
enden).
Der gemeinsame Weg Ereignisse auf solche Widgets zu handhaben ist von GtkEventBox
mit , das heißt indem der GtkImage
Widget in einem GtkEventBox
und Verbinden X Ereignissignale auf diese GtkEventBox
.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow