Leser: 1
|< 1 2 >| | 17 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# mein Label
# cnt aus Schleife
$fixedTable->[$cnt]->{'Text'} = $fixedDaten->Label(
-text => $val,
-font => $fixedDaten->Font(-weight=>'normal',-size=>16,),
-wraplength => ($mw->screenwidth() - $imageFrame->reqwidth()) - $pfeil->width(),
-justify => 'left',
-bd => 3,
- relief => 'raised',
);
$fixedTable->[$cnt]->{'Text'}->grid(
-column=>2,
-row=>$cnt,
-ipadx => 0,
-padx => 0,
-columnspan=>2,
-sticky => "nswe",
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use strict;
use Tk;
my $i = 0;
my $labeltext = '';
my $mw = MainWindow->new(-title=>'Labeltest');
$mw->minsize(500,200);
$mw->Label(-textvariable=>\$labeltext,-background=>'red')->pack(-fill=>'both');
$mw->Button(-text=>'Verändere Text',-command=>\&veraendere_text)->pack();
$mw->Button(-text=>'Quit',-command=>sub{$mw->destroy();})->pack();
MainLoop;
sub veraendere_text () {
my @text = qw/Labeltext1 Labeltext2 Text3 etc/;
$labeltext = @text[$i];
$i = 0 if $i++ >= 3;
}
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
my $fixedTable = [];
my $fixedDatenObj = {}; # Referenzen zu allen Objekten (z.B. Preis) die in der fixedTabelle
# stehen (zwecks Zugriff zur späteren Modifikation)
# Quasi das Selbe wie $fixedtabel = [], nur dass es keine Arrayref ist
for( my $cnt=0; $cnt <= $#{$glob->{'actualObject'}->{'FixedData'}}; $cnt++ ){
# -[A]- Tabelle erstellen
# -[1]- zuerst den Textteil um zu sehen, ob man den Spacer vergrößern muss
# Aktuellen Eintrag auslesen (ist immer nur einer)
my ($key, $val) = %{$glob->{'actualObject'}->{'FixedData'}->[$cnt]};
utf8::encode($glob->{'actualObject'}->{'FixedData'}->[$cnt]->{$key});
# print "k: $key, v: $val\n";
$fixedTable->[$cnt]->{'Text'} = $fixedDaten->Label(
# -text => $val,
-textvariable => \$glob->{'actualObject'}->{'FixedData'}->[$cnt]->{$key},
-font => $fixedDaten->Font(-weight=>'normal',-size=>16,),
-wraplength => ($mw->screenwidth() - $imageFrame->reqwidth()) - $pfeil->width(),
-justify => 'left',
-bd => 3,
- relief => 'raised',
);
# # create Font
# $fixedTable->[$cnt]->{'Text'}->configure(
# -font => $mw->Font(-family => 'Verdana',),
# );
# -[2]- jetzt den Pfeil und den Spacer
$fixedTable->[$cnt]->{'Grafik'} = $fixedDaten->Frame(-bd => 0,);
$fixedTable->[$cnt]->{'Pfeil'} = $fixedTable->[$cnt]->{'Grafik'}->Label(-image => $pfeil,-bd => 0,);
$fixedTable->[$cnt]->{'Spacer'} = $fixedTable->[$cnt]->{'Grafik'}->Label(-image => $pfeilSpacer,-bd => 0,);
# Größe des Spacers dem Text anpassen
main::berechneSpacer($mw, $pfeil, $pfeilSpacer, $fixedTable->[$cnt]);
# keine Unterscheidung zwischen leztem undn nicht letztem Eintrag, da
# noch weitere Angaben folgen
$fixedTable->[$cnt]->{'Pfeil'}->pack(
-anchor=>'n',
-expand =>1,
-side =>'top',
-ipadx => 0, -ipady => 0,
-padx => 0, -pady => 0,
);
$fixedTable->[$cnt]->{'Spacer'}->pack(
-fill=>"y",
-anchor=>'n',
-expand =>1,
-side =>'top',
-ipadx => 0, -ipady => 0,
-padx => 0, -pady => 0,
);
# -[3]- Objekte in ReferenzHash ablegen um später Zugriff haben zu können
$fixedDatenObj->{$key}->{'Text'} = $fixedTable->[$cnt]->{'Text'};
$fixedDatenObj->{$key}->{'Grafik'} = $fixedTable->[$cnt]->{'Grafik'};
$fixedDatenObj->{$key}->{'Pfeil'} = $fixedTable->[$cnt]->{'Pfeil'};
$fixedDatenObj->{$key}->{'Spacer'} = $fixedTable->[$cnt]->{'Spacer'};
# -[B]- jetzt noch alles zusammenpacken
$fixedTable->[$cnt]->{'Grafik'}->grid(
-column=>1,
-row=>$cnt,
-sticky => "ns",
);
$fixedTable->[$cnt]->{'Text'}->grid(
-column=>2,
-row=>$cnt,
-ipadx => 0,
-padx => 0,
-columnspan=>2,
-sticky => "nswe",
);
} # /for
################################################################################
1
2
3
4
my $text='Hallo';
$main->Label(-textvariable=>\$text,-width=>20)->pack;
$main->after(1500=>sub {$text="Hallo Welt"});
|< 1 2 >| | 17 Einträge, 2 Seiten |