::canvas->createText(...)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
use strict;
use warnings;
use Tk;
#use Tk::DynaMouseWheelBind;
# --START--#
my $top = new MainWindow;
$top->geometry("700x800");
#-- START Scrolled Canvas----#
my $zcanvas = $top->Scrolled(
qw/Canvas -relief sunken -width 400 -height 400
-bg white -borderwidth 1 -scrollbars se
-scrollregion / => [qw/0 0 1000 1000/]
)
->pack( -expand => 1, -fill => "both" );
my $ic = $zcanvas->Subwidget('Scrolled');
#--ENDE Scrolled Canvas----#
#---<<<<<<<< A) START Labelframe >>>>>>>>--#
my $ZLFRAME = $zcanvas->Labelframe(-relief=> "groove", -text =>"...", -bg => "#FFFFFF")
->pack( -expand => 1,
-fill => "both" ,
-padx => 10,
-pady => 10,
-ipadx => 10,
-ipady => 5);
for ( 1 .. 22 ) {
my $zlabel .= $_;
$zlabel = $ZLFRAME->Labelframe( -text => "[$_]", -bg => "#FFFFEE" )
->pack( -expand => 1,
-fill => "both" ,
-padx => 10,
-pady => 10,
-ipadx => 10,
-ipady => 5);
my $zlabelfr = $zlabel->Label( -text => "Umlauf[$_]" )->pack;
}
#---<<<<<<<< A) ENDE Labelframe >>>>>>>>--#
#---<<<<<<<< B) START CreateText >>>>>>>>--#
# my $y = 10;
#
# $zcanvas->createText (250,0,-anchor=>'n',-justify=>"center",
# -width=>500,-text=>"\n",-fill=>"yellow");
#
# for ($i = 0 ; $i < 100 ; $i++)
# {
# $zcanvas->createText(150,$y,-anchor=>"nw",-fill=>"black",-text=>$i);
# $y += 25;
# }
#---<<<<<<<< B) ENDE CreateText >>>>>>>>--#
#---MOUSEWHEEL BINDINGS
$top->bind(
$top,
'<MouseWheel>',
[
sub {
my $unit = $_[1] > 0 ? -1 : 1;
$zcanvas->yviewScroll( $unit => 'units' );
},
Ev('D')
]
);
MainLoop;
Quote*zwei Dinge fallen mir dazu ein:
*1.Das Canvas scrollt von sich aus durch das Mausrad, was man erst *umständlich durch Vergabe von Grenzen abstellen muss - natürlich nur *unter Windows.
Quote2.Dann klappt das mit dem Mousewheel auch nicht überall, weswegen ich unter Linux Button-4 und Button-5 abfange (Auf-/Abwärts drehen des Mausrades). Ich muss nachher mal suchen wie ich das bei Programmen gemacht habe, die sowohl auf Win als auch unter Linux laufen sollen. Meine Erinnerung ist da etwas lückenhaft.
Gruß,
Molaf
1
2
3
4
5
6
7
$setup = sub{
my $mw = shift;
$mw->bind('all','<Motion>',$motion); # could be <Enter> as well
$mw->bind('all','<MouseWheel>',[$mousewheel_event, Tk::Ev('D')]);
$mw->bind('all','<4>',[$mousewheel_event, 120]);
$mw->bind('all','<5>',[$mousewheel_event, -120]);
};
Guest james.coder2011-10-17T10:21:03 MolafQuote*zwei Dinge fallen mir dazu ein:
*1.Das Canvas scrollt von sich aus durch das Mausrad, was man erst *umständlich durch Vergabe von Grenzen abstellen muss - natürlich nur *unter Windows.
Hallo Molaf, Danke für deine erste Antwort.
Der von Dir genannte "Effekt" bedingt dann immer die zwingende Angabe
eines -->>Scrollareas ?
Quote2.Dann klappt das mit dem Mousewheel auch nicht überall, weswegen ich unter Linux Button-4 und Button-5 abfange (Auf-/Abwärts drehen des Mausrades). Ich muss nachher mal suchen wie ich das bei Programmen gemacht habe, die sowohl auf Win als auch unter Linux laufen sollen. Meine Erinnerung ist da etwas lückenhaft.
Gruß,
Molaf
Guest james.coderHinweis an die Forenbetreiber:
Freundliche Bitte um ein zumindest großzügiges Ticket-Management,
da ein Forum auch dadurch lebt, daß Tickets geschlossen werden
nach einiger Zeit.
-->>Suche::Tickets sind ja deshalb offen,
da keine Löung existiert. Aber eben dann auch nicht hilfreich.