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;

War es hilfreich?

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
scroll top