2017-02-01 2 views
-1

Ich brauche Hilfe beim Schreiben von Code für Fenster Fortschrittsbalken in Tcl/tk, wenn etwas von meinem Code läuft. Das Fortschrittsbalkenfenster kann sich auf der linken oder rechten Seite des Bildschirms befinden.Anzeige Fortschrittsbalken in separaten Fenster in tcl

+0

Wir schreiben keinen Code für Sie, wir beraten Sie, nachdem Sie Code, den Sie ausprobiert haben – jhhoff02

Antwort

1

Sofern Sie nicht eine alte Version verwenden (und wenn Sie sind, Upgrade!) sollten Sie einen Fortschrittsbalken Versand mit Tk haben. ttk::progressbar ist ziemlich einfach zu bedienen und unterstützt ein paar Nutzungsmuster. Eine der einfachsten ist es auf eine globale Variable zu binden:

set progress 0 
pack [ttk::progressbar .p -variable progress] 

# Run the progress bar from 0% to 100%, one step every 0.1s, after a 1s pause 
proc updateProgress {} { 
    global progress 
    if {$progress < 100} { 
     incr progress 
     after 100 updateProgress 
    } 
} 
after 1000 updateProgress 

Das Haupt heikle Sache ist, dass man muss weiterhin die Ereignisschleife warten, während die Fortschrittsbalken mit, so dass es eine Chance zu aktualisieren hat (die wird möglicherweise für das aktuelle Widget-Thema benötigt), genauso wie bei anderen Aktionen mit Tk. Wenn Sie CPU-lastig arbeiten, müssen Sie möglicherweise von Zeit zu Zeit Anrufe in die update hinzufügen (mindestens 10 Mal pro Sekunde im Idealfall), und das erfordert wiederum Vorsicht, da Sie Probleme mit der Wiedereintrittsproblematik mit anderen Teilen der GUI erzeugt Ereignisse während der Arbeit.

+0

Vielen Dank für Ihre Vorschläge – Avi

Verwandte Themen