Thread Tk::Canvas Tk::bind - führt callback nicht aus? (5 answers)
Opened by PerlProfi at 2006-12-09 18:14

PerlProfi
 2006-12-09 18:14
#46022 #46022
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Ich habe da gerade ein Problem.

Ich würde mir gerne die Position auf der Kommandozeile ausgeben lassen, an der mit der Maus geklickt wurde.

Dazu habe ich folgendes probiert:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
use strict;
use warnings 'all';
use Tk;

my $mw = tkinit;
my $c = $mw->Canvas(-background => "white")->pack;

$c->Tk::bind("<Button-1>", [sub { shift; print "Pos: @_\n" }, Ev("x"), Ev("y")]);

MainLoop;


Das hat auch wunderbar funktioniert, aber wenn ich es dann in meiner eigentlichen Applikation verwenden möchte, wird der callback anscheinend gar nicht ausgeführt.

Mein Versuch:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
        print "Jetzt werden die Bindings hinzugefuegt...\n";

$c -> Tk::bind ("<Button-1>", [
sub {
shift;
my @op = @{$r->{pos}};
my @np = getXY(@_);

print " OP: @op\n NP: @np\n";

newpos($r, [$np[0]-$op[0], $np[1]-$op[1]]);
}, Ev("x"), Ev("y") ]);


Ausgabe nachdem ich auf das Canvas geklickt habe:
Code: (dl )
Jetzt werden die Bindings hinzugefuegt...


Fehlermeldungen gibt es keine.

Bedanke mich schonmal für Hilfe,
MfG PerlProfi

View full thread Tk::Canvas Tk::bind - führt callback nicht aus?