30.12.2012 Aufrufe

Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel

Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel

Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Kapitel 9 – Der Gebrauch der Leinwand 195<br />

}<br />

-outline "" -fill $color -tags bar<br />

$win.display create text [expr 0.5*$len] 10 \<br />

-anchor c -text "0%" -tags value<br />

return $win<br />

Dem äußeren Rahmen, der als Hülle dient, geben wir den Klassennamen<br />

Gauge, damit wir Standardvorgaben für die Klasse einsetzen können. Im<br />

Beispiel sind dies<br />

option add *Gauge.borderWidth 2 widgetDefault<br />

option add *Gauge.relief sunken widgetDefault<br />

option add *Gauge.length 200 widgetDefault<br />

option add *Gauge.color gray widgetDefault<br />

Man beachte, daß borderWidth und relief Standardoptionen für<br />

Rahmen sind, length und color aber speziell für das Meßgerät<br />

(Gauge) eingeführt wurden.<br />

Diese Vorgabe fragen wir auch ab, wenn wir die Länge der Leinwand<br />

$win.display setzen. Deren Höhe kodieren wir hart mit 20 Pixeln,<br />

den Rand schalten wir aus.<br />

Die Farbe fragen wir nur ab, wenn keine Vorgabe aus dem Aufruf vorliegt.<br />

Auch der Balken bekommt keine Randlinie und ist zunächst ein<br />

„Strich“ der Breite 0 und Höhe 20. Den Prozentwert setzen wir in die<br />

Mitte und lassen ihn 0% anzeigen.<br />

Um jetzt Meßwerte anzuzeigen, übergeben wir einer generischen Routine<br />

den Namen der Anzeige und den aktuellen Wert.<br />

proc gauge_value {win val} {<br />

if {$val < 0 || $val > 100} {<br />

error "bad value '$val': should be 0-100"<br />

}<br />

set msg [format "%3.0f%%" $val]<br />

$win.display itemconfigure value -text $msg<br />

set w [expr 0.01*$val*[winfo width $win.display]]<br />

set h [winfo height $win.display]<br />

$win.display coords bar 0 0 $w $h

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!