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

Mauszeiger über eine Linie verändern

Leser: 1


<< >> 3 Einträge, 1 Seite
Gast Gast
 2008-03-10 15:11
#106887 #106887
Hallo Community,

wie kann ich einen Mauszeiger verändern, wenn dieser über eine Linie (Canvas->createLine(...)) platziert wird? Geht das?

Danke!

Alex
renee
 2008-03-10 15:41
#106889 #106889
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
So bekommst Du innerhalb eines gewissen Gebiets um die Linie den Satz wechsel den Cursor ausgegeben. Der Rest sollte Fleißarbeit sein - und bitte die Lösung hier posten.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl

use strict;
use warnings;
use Tk;

my $mw = tkinit;

my $canvas = $mw->Canvas->pack;
$canvas->createLine(10,200,159,300);

$canvas->Tk::bind( '<Motion>' => [\&select_cursor, Ev('x'), Ev('y')] );

MainLoop;

sub select_cursor{
    my ($c,$x,$y) = @_;
    my @coords = ($x-5, $y-5, $x+5, $y+5 );
    my $item = $c->find('overlapping', @coords);
    
    if( $item and @$item ){
        print "wechsel den Cursor";
    }
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-03-10 16:02
#106891 #106891
Danke Renee!
Code (perl): (dl )
1
2
3
4
5
    if( $item and @$item ){
        $canvas->configure(-cursor => 'crosshair');
    } else {
        $canvas->configure(-cursor => 'arrow');
    }
<< >> 3 Einträge, 1 Seite



View all threads created 2008-03-10 15:11.