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

Canvas - Popup bei MouseOver

Leser: 2


<< >> 4 Einträge, 1 Seite
pktm
 2008-07-26 20:00
#112803 #112803
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Weiß jemand, wie man eine Art Popup oder ein einfaches kleines Widget realisiert, das neben der Maus angezeigt wird, wenn man über ein Element in einer Canvas fährt?

Also ich habe eine Canvas und ein Element darin, und bräuchte so eine Art IOnformationstafel für das Element, in der Text stehen kann.
Code: (dl )
1
2
3
4
5
6
	my $canvas = $top->Canvas(
-width => '750',
-height => '750',
-bg => 'white',
)->pack();
my $e = $canvas->createRectangle(10,10,20,20, -fill => 'red', -outline => 'white' );


Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
MatthiasW
 2008-07-27 00:54
#112808 #112808
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
Da musst du mit Tags arbeiten:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
my $e = $canvas->createRectangel(
10, 10,
20, 20,
-fill => 'red',
-outline => 'white',
-tags => ['rotes rechteck'],
);

$canvas->bind(
'rotes rechteck',
'<B3>',
[
sub {
my $menu = 'erstelle Tk::Menu mit zusätzlichen Infos';
$menu->post( $_[0], $_[1] );
},
Tk::Ev('X'),
Tk::Ev('Y'),
],
);

Wobei ich mir gerade nicht sicher bin ob die beiden Koordinaten wirklich die beiden ersten Parameter sind, die dem callback mitgegeben werden.

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'
Dubu
 2008-07-27 03:19
#112809 #112809
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Suchst du vielleicht etwas wie CPAN:Tk::Balloon?
pktm
 2008-08-13 02:14
#113459 #113459
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Dubu+2008-07-27 01:19:15--
Suchst du vielleicht etwas wie CPAN:Tk::Balloon?


Jepp.
Ich hab jetzt jedem Element in der Canvas ein Tag gegeben.
Für jedes Tag gibts ne Message in Tk::Baloon.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
	# -- bloat the baloon
my %gui = (); #... wird irgendwo gefüllt
$gui{baloon} = $top->Balloon(-initwait => 0);

my %msgs = ();
for my $key ( keys %gui ) {
if( $key =~ m/^((?:section|shelf)\d+)$/ ) {
$msgs{$1.'_tag'} = $1;
}
}

$gui{baloon}->attach($canvas,
-balloonposition => 'mouse',
-msg => \%msgs,
);


Wie kann ich diese Meldungen jetzt nachträglich einzeln ändern? Gibts dafür was in Configure?

Ich habs momentan so gemacht, dass ich die Referenz auf %msgs irgendwo speichere. Aber ich greife eigentlich lieber über nette Schnittstellen auf sowas zu.

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 4 Einträge, 1 Seite



View all threads created 2008-07-26 20:00.