Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]4925[/thread]

Canvas - Wo ist der Mauszeiger?

Leser: 2


<< >> 8 Einträge, 1 Seite
jemand
 2005-04-08 21:48
#43407 #43407
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
Hallo,
Ich möchte in einem Canvas eine Linie(und später auch anderes) ab der Position des Mauszeigers erstellen, wenn man da halt klickt...
Also mehr oder weniger so wie in 'normalen' Grafikeditoren(oder nennt man die Bildeditoren?).
Danke im vorraus.

Jemand
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
ptk
 2005-04-08 22:48
#43408 #43408
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Nicht getestet, aber ungefaehr so muesste es gehen:
Code: (dl )
1
2
3
4
5
6
$c->bind("<1>" => sub {
my $e = $c->XEvent;
my($x, $y) = ($c->canvasx($e->x),
$c->canvasy($e->y));
....
}
jemand
 2005-04-09 18:04
#43409 #43409
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
Hallo,
Ich hab das jetzt ausprobiert aber ich kriegs einfach nicht hin:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
my $canvas = $mw->Canvas(-width  => '350',
-height => '350',
-bg => '#FFFFFF',
)
->pack();
$canvas->bind("<1>" => sub {
my $e = $canvas->XEvent;
my($x, $y) = ($canvas->canvasx($e->x),
$canvas->canvasy($e->y));
$canvas->createLine($x, $y, ($x+50), ($y+50));


Was soll eigentlich das XEvent? Ich kann in der docu nichts dazu finden.
Danke schonmal\n\n

<!--EDIT|jemand|1113055494-->
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
ptk
 2005-04-11 15:16
#43410 #43410
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Sorry, der bind-Aufruf muss so aussehen:
Code: (dl )
$canvas->Tk::bind(...)

(Es gibt naemlich das normale bind, das fuer alle Widgets gilt, und das Canvas-spezifische, das nur fuer Canvas-Items gilt).
jemand
 2005-04-12 17:34
#43411 #43411
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
ja ich hab näch längerem suchen dann nochmal was anderes gefunden das ging auch.
Falls wer mal den code braucht:
Code: (dl )
1
2
$canv->CanvasBind('<3>' => sub {
my ($x, $y) = ($Tk::event->x, $Tk::event->y);
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
Crian
 2005-04-12 18:58
#43412 #43412
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Sonst schau Dir das Einstiegsbeispiel in "Einführung in Perl Tk" an.

Oder meinen GED, da wird etwas verwandtes auch gemacht. (In GED::Graph::Gui.pm) Zu finden über meine Perlseite (siehe Signatur).
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
jemand
 2005-04-12 22:23
#43413 #43413
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
@crian: Ja beim googeln bin ich auf deinen ged gestoßen, habs dann aber gelassen nach dem code zu suchen weil es wohl ewig gedauert hätte das richtige modul zu finden...
naja jetzt hab ichs ja.
Danke aber trotzdem.
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
Crian
 2005-04-13 15:54
#43414 #43414
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
[quote=jemand,12.04.2005, 20:23]@crian: Ja beim googeln bin ich auf deinen ged gestoßen[/quote]
So solls sein :D

[quote=jemand,12.04.2005, 20:23]habs dann aber gelassen nach dem code zu suchen weil es wohl ewig gedauert hätte das richtige modul zu finden...[/quote]

Nunja, alle GED-Module liegen in GED::Graph, wie lange muss man nach dem Oberflächenmodul suchen, wenn es dort eine Gui.pm gibt? ;)

Naja, nichts für ungut =)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 8 Einträge, 1 Seite



View all threads created 2005-04-08 21:48.