Leser: 1
![]() |
|< 1 2 >| | ![]() |
12 Einträge, 2 Seiten |
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
#--------------------------------------------------------------------------
# Fortschrittsbalken:
#--------------------------------------------------------------------------
my $fb_f = $mw->LabFrame(-label => 'Fortschrittsanzeige',
-labelside => 'acrosstop',
);
my $fsb = $fb_f->ProgressBar(
-length => 200,
-width => 13,
-anchor => 'w',
-from => 0,
-to => 100,
-blocks => 10,
-gap => 0,
-colors => [
00 => '#0000FF',
10 => '#1C00FF',
20 => '#3800FF',
30 => '#5500FF',
40 => '#7100FF',
50 => '#8D00FF',
60 => '#AA00FF',
70 => '#C600FF',
80 => '#E200FF',
90 => '#FF00FF',
],
-value => 0,
)
->pack(-side => 'top',
-expand => 1,
-fill => 'x',
);
$Konfig{fsb} = $fsb;
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
sub user_informieren ($) {
#--------------------------------------------------------------------------
# sub : u s e r _ i n f o r m i e r e n
#--------------------------------------------------------------------------
# Autor : CD
# Aufgabe : Informiert den User über den Fortschritt des Programms.
# Dies erfolgt in Form der Anpassung des Fortschrittbalkens.
# Parameter : Anzahl Zeichen in der aktuellen Zeile.
# Rückgabewert : keiner
#--------------------------------------------------------------------------
# 0.0.1 - 21.04.2004 - CD - Erstellt
#--------------------------------------------------------------------------
$Konfig{accsize} += 1 + shift; # + 1 für das 2. Zeichen des Zeilenumbruchs
if ($Konfig{gui}) {
$Konfig{mw}->Unbusy();
$Konfig{fsb}->value(int (100 * $Konfig{accsize} / $Konfig{maxsize}));
$Konfig{mw}->update();
$Konfig{mw}->Busy();
}
else {
local $| = 1;
if ( $Konfig{accsize} / $Konfig{maxsize} >= $Konfig{accperc} ) {
print '#';
$Konfig{accperc} += 0.0125;
print "\n\n" if $Konfig{accsize} == $Konfig{maxsize};
}
}
} # sub user_informieren
$Konfig{maxsize} = -s $Konfig{quelle};
1
2
3
4
5
6
7
#--------------------------------------------------------------------------
# Eingabedatei bearbeiten:
#--------------------------------------------------------------------------
while (<IN>) {
user_informieren(length);
...
}
QuoteJa das wäre auch Ok(wobei mir eine richtig Progressbar besser gefallen würde)... kann man das auch mit Tk::Progressbar machen?
QuoteIch glaube nicht --- ich habe ein eigenes Widget dafuer geschrieben (nicht auf CPAN).
![]() |
|< 1 2 >| | ![]() |
12 Einträge, 2 Seiten |