Thread Tk - Klick auf Canvas erkennen (2 answers)
Opened by Thomas at 2011-07-11 18:52

pktm
 2011-07-11 23:28
#150306 #150306
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Du musst den Klick abfangen und eine Methode daran knüpfen, die auswertet, wohin geklickt wurde und welche Kreise sich mit diesen Koordinaten überlappen.

Das abfangen macht man mit bind(), die Koordinaten werden bei diesem Event mitgeliefert (s. Buch Mastering Perl/Tk):
Code: (dl )
1
2
3
4
5
6
7
$c = $mw->Scrolled("Canvas")->pack( );
$canvas = $c->Subwidget("canvas");
$canvas->CanvasBind("<Button-1>", [ \&print_xy, Ev('x'), Ev('y') ]);
sub print_xy {
my ($canv, $x, $y) = @_;
print "(x,y) = ", $canv->canvasx($x), ", ", $canv->canvasy($y), "\n";
}


Fehlt nur noch das mit dem Überlappen. Hier ein Schnipselchen dazu.
Code: (dl )
my $w = $canvas->find("overlapping", $x, $y, $x, $y);
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread Tk - Klick auf Canvas erkennen