GUI Erweiterungen

In den letzten 4 Wochen wurde die GUI stetig um Funktionen erweitert. Die wesentlichen Features habe ich in diesem Blogpost zusammengestellt.

Design

Die GUI hat ein leicht überarbeitetes Design. Die drei Hauptsektionen „model input“, „model control“ und „log output“ sind jetzt besser voneinander getrennt, fortgeschrittene Optionen sind ausgegraut und können über ein Häkchen aktiviert werden. Es gibt eine Menüleiste mit weiteren Informationen zur aktuellen Version, zur Dokumentation und zur Lizenzierung.

Überarbeitung des restart mode

Der Restart Modus wird jetzt in der GUI über eine neue Textdatei mit der Endung .splashconfig gesteuert. Diese enthält alle Informationen, um eine Iteration von einem abgebrochenen Stand fortsetzen zu können und wird mit jeder Dateiausgabe geschrieben. Die entsprechenden Einstellungen werden direkt in die GUI geladen und SplashTool damit gestartet. Das bedeutet im Umkehrschluss, dass in der aktuellen Variante der skriptbasierte alte Restart Modus nicht mehr vorhanden ist und bei Bedarf die einzelnen Optionen über die entsprechenden set-Methoden im Skript manuell gesetzt werden müssen.

Interaktive GUI

Die Iteration startet in einem neuen Thread und blockiert somit nicht mehr die GUI, der User kann jederzeit einen manuellen Abbruch der Iteration durchführen. Es werden hierbei noch Ausgabedateien inklusive einer .splashconfig-Datei für den letzten Iterationsschritt geschrieben und die Iteration anschließend beendet.

Logging

Bisher wurden Ausgaben auf der Konsole sehr vereinfacht über einen „print-Aufruf“ durchgeführt. Diese Herangehensweise wurde zu Gunsten des Python logging Modules geändert, welches jetzt sowohl die Ausgabe im GUI Konsolenfenster, als auch in eine neue Logdatei kontrolliert. Der Logger startet in der neuen Hauptdatei „SplashTool.py“. Die GUI, der Manager und das Model loggen als Untermodule auf denselben Logger. Somit sind sowohl der Manager als auch das Model von dieser Änderung betroffen.

Die skriptbasierte Nutzung von Manager und Model ist weiterhin möglich, die hierfür zu nutzende Hauptdatei wurde für die neue Logging Struktur angepasst und heißt jetzt „splashtool_script_example.py“.