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

Scrolled - Canvas mit Mausrad scrollen - nicht ?

Leser: 2


<< |< 1 2 >| >> 19 Einträge, 2 Seiten
Gast Gast
 2007-09-07 14:23
#99193 #99193
Hallo,

wenn ich ein Canvas mit Scrolled erstelle, wieso scrollt dann diese nicht wenn ich an der Maus drehe?

Ist das nromal? Wie muss man das machen?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

use strict;

use Tk;

my $mw = MainWindow->new;

my $c = $mw->Scrolled(
        qw/Canvas -width 400 -height 400 -relief sunken
        -bg white -borderwidth 1 -scrollbars se -scrollregion/ => 
                [qw/0 0 1000 1000/])->pack;
                


MainLoop;
pktm
 2007-09-07 16:21
#99197 #99197
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
[s]Scrolled erstellt nur die Scrollbalken, die Bindings für das Mausrad musst du zusätzlich erstellen.[/s]
Stimmt nicht.
http://www.intergastro-service.de (mein erstes CMS :) )
ptk
 2007-09-09 23:46
#99254 #99254
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Welche Tk-Version? Welches Betriebssystem? Unter X11 bekommt man die Bindings automatisch...
Gast Gast
 2007-09-10 12:33
#99260 #99260
wäre nett, wenn jemand einen kleinen Beispiel für mich hätte :)

benutze Win mit Perl 5.8.4

Danke!
ptk
 2007-09-10 18:35
#99275 #99275
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ich denke, dass entweder
Code: (dl )
$c->MouseWheelBind
oder
Code: (dl )
$c->Subwidget("scrolled")->MouseWheelBind
funktionieren sollte. Allerdings bin ich überrascht, dass der MouseWheel-Code nur bei X11 automatisch gesetzt wird. Sollte es unter Windows nicht auch automatisch passieren?
pktm
 2007-09-10 21:04
#99285 #99285
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
ptk+2007-09-10 16:35:20--
Ich denke, dass entweder
Code: (dl )
$c->MouseWheelBind
oder
Code: (dl )
$c->Subwidget("scrolled")->MouseWheelBind
funktionieren sollte. Allerdings bin ich überrascht, dass der MouseWheel-Code nur bei X11 automatisch gesetzt wird. Sollte es unter Windows nicht auch automatisch passieren?


Hm... ja stimmt. Das kommt mir bekannt vor. Da war ich wohl etwas voreilig. Allerdings kann ich die Canvas grundsätzlich nicht zum Scrollen bringen, wohl hauptsächlich weil ich noch nie damit gearbeitet habe.

Folgender Code scrollt bei mir nicht (getestet):
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/Perl/bin/perl

use strict;
use warnings;
use Tk;

my $mw = MainWindow->new;

my $c = $mw->Scrolled(
        'Canvas',
        -width          => 400,
        -height         => 400,
        -relief         => 'sunken',
        -bg             => 'white',
        -borderwidth    => 1,
        -scrollbars     => 'se',
        -scrollregion   => [qw/0 0 1000 1000/]
)->pack();


$mw->MainLoop();


Und das auch nicht mit MouseWheelBind().

Hingegen wird dieses Widget gescrollt:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/Perl/bin/perl

use strict;
use warnings;
use Tk;

my $mw = tkinit();

my $scrtxt = $mw->Scrolled(
'Text',
-scrollbars => 'se',
)->pack(-fill => 'both');

$mw->MainLoop();


Eventuell hat es was mit der -scrollregion zu tun, ist aber nur eine Vermutung.
http://www.intergastro-service.de (mein erstes CMS :) )
ptk
 2007-09-11 00:20
#99295 #99295
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Zeig mal, wie du MouseWheelBind eingebunden hast.
pktm
 2007-09-11 12:36
#99308 #99308
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Na, ich hab in Zeile 19 $c->MouseWheelBind(); hingeschrieben. Ist das falsch?
http://www.intergastro-service.de (mein erstes CMS :) )
Gast Gast
 2007-09-11 13:40
#99316 #99316
pktm+2007-09-11 10:36:12--
Na, ich hab in Zeile 19 $c->MouseWheelBind(); hingeschrieben. Ist das falsch?


bei mir funktioniert das irgendwie nicht :(

Keine Fehlermeldung und auch die Canvas reagiert auf Scrollen nicht.
Code (perl): (dl )
1
2
3
4
#sowohl
$c->MouseWheelBindoder 
#als auch...
$c->Subwidget("scrolled")->MouseWheelBind
ptk
 2007-09-11 23:32
#99361 #99361
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ach, falscher Aufruf. Versuch mal stattdessen
Code: (dl )
$mw->MouseWheelBind("Tk::Canvas")
.
Alternativ auch nur "Canvas" oder "canvas".
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2007-09-07 14:23.