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

ProgressBar - o.ä. Ergebnisse darstellen: Tk: Ergebniss ansprechen darstellen

Leser: 1


<< >> 4 Einträge, 1 Seite
quetzalcoatl
 2004-04-03 18:34
#41894 #41894
User since
2004-04-01
51 Artikel
BenutzerIn
[default_avatar]
Hallo,

mal wieder ein (kleineres/größers) Problem:

ich hab hier verschiedene MB/s Ergebnisse - die möchte ich nun in einer Scala von 1-100 MB/s darstellen.

Ich hab mir schon die "ProgressBar" angeschaut - eigentlich erfüllt die (fast) alles was ich brauch. Eben leider nur fast :)
Was ich bräuchte wäre eine "ProgressBar" die mir auch die zwichenschritte in zahlen darstellt, ungefähr so:

0---5----10-----20-----30------40-----50------60-----70----80-----90------100

#################################### 68 MB/s

------------------------------------------------------------------------------------------


-----

außerdem gehen nicht zwei ProgressBars in einem Fenster (ich will ja mehrere Ergebniss untereinander darstellen.

Was ich sehr angenehm finde, (was ich auch bräuchte) die unterschiedlichen Farben bei den Prozent abschnitten.

Weiß jemand wie man sowas realisieren kann - bzw. wo ich (außer ein Buch zu kaufen - da ich jetzt fast alles ohne Buch geschafft hab) das nachlesen/nachschauen kann?

Edit: kann ich das vielleicht mit einem "Entry" oder "Label" lösen?

Edit2: gut, hab jetzt ne "quick and dirty" lösung gefunden, mit "Entry":
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl -w


use Tk;
use Tk::ProgressBar;

my $mw = MainWindow->new(-title => 'ProgressBar example');
$mw->Label(-text=>'1 - 1000 MB/s')->pack();

$test="#";
$mw -> Entry(-textvariable=>\$test, -foreground=>'darkgreen', -width=>120)->pack();
for ($i=0; $i<100; $i++) { $test.="#"; $mw->update(); }
$test.="$i"; $mw->update();

$mw->Entry(-textvariable=>\$test2, -width=>120)->pack();
for ($a=0; $a<50; $a++) { $test2.="#"; $mw->update(); }
$test2.="$a"; $mw->update();

$mw->update();
   
MainLoop();

so kann ich zumindest mal zwei Ergebnisse (oder mehr) darstellen.

Sieht aber irgendwie nicht wirklich gut aus :(

Kann ich das Feld "#" auch ohne # mit Farbe darstellen? Wenn ich einfach ein Leerzeichen reinmach - zeichnet er keine Farbe mehr (verständlich).

Gruss,
quetzal\n\n

<!--EDIT|quetzalcoatl|1081005834-->
ptk
 2004-04-06 20:30
#41895 #41895
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Warum sollte man nicht mehrere ProgressBars gleichzeitig darstellen koennen? Das Beispiel in "widget" scheint damit keine Probleme zu haben. Den aktuellen Zahlenwert koennte man in einem Label ausserhalb des ProgressBars darstellen.
quetzalcoatl
 2004-04-09 18:37
#41896 #41896
User since
2004-04-01
51 Artikel
BenutzerIn
[default_avatar]
ich hab's jetzt so gelassen - was mich aber immer noch stört, ist das ich um den Fortschrittsbalken da zu stellen, noch "#" benutzen muss - sieht wirklich nicht so gut aus.

Gibt es noch ne möglichkeit ein Entry o.ä. schrittweise zu füllen - außer mit "#" o.ä. - eben am besten kein sichtbares zeichen?


Quote
Warum sollte man nicht mehrere ProgressBars gleichzeitig darstellen koennen?

dachte - als ich es ausprobiert hab, hätte er mir den zweiten Balken nicht dargestellt. Wahrscheinlich einfach nicht ordentlich genug getestet :D


Gruss,
quetzal
ptk
 2004-04-13 13:37
#41897 #41897
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Man kann z.B. ein Frame mit festen Dimensionen (-width und -height gesetzt) verwenden. Oder ein Canvas mit createRectangle.
<< >> 4 Einträge, 1 Seite



View all threads created 2004-04-03 18:34.