Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss18:gui

GUI

Die Benutzeroberfläche bildet den zentralen Punkt des Programmes. Von hier aus werden andere Teile des Codes aufgerufen und ausgeführt. Der Code für das Gui wird in einen funktionalen und einen strukturellen Part unterteilt.1)

Um die GUI zu implementieren haben wir für die Pythonbibliothek tkinter entschieden. Diese ist standardmäßig bei Python dabei und ist zudem auch mit den gängisten Betriebsystemen kompatibel (Windows, macOS, Linux). Diese Bibliothek bietet sehr viele Möglichkeiten, für GUI Elemente, jedoch darf man die Einarbeitungszeit für den Umgang mit tkinter nicht unterschätzen.

Funktionaler Teil

gui_main.py

Mit dieser Datei startet man das Hauptprogramm. Hier findet die Kommunikation zwischen dem Tracking und der Datenstruktur statt.

init

  • Initialisieren des Guifensters
  • Anlegen des Seitenmanager für die einzelnen Tabs

openVideo

  • liest den Videopfad für das zu trackende Video ein

openCascade

  • liest den Kaskadenpfad für die automatische Erkennung der Pucks ein

autoDetect

  • ruft die setup-Methode des Tracker Moduls auf
  • Initialisieren der Pucks für die Datenstruktur

manualDetect

outputTable

  • öffnet einen Speicherdialog zum Speichern der Puckdaten aus der Datenstruktur in einer Tabellendatei

toggle

  • sorgt dafür, dass der Trackingvorgang pausiert und wieder fortgesetzt werden kann.
  • ruft task auf, wenn das Tracking fortgesetzt wird

task

  • ruft die run-Methode des Tracker Moduls auf
  • übergibt die vom Tracker übergebenen Positionsdaten an die Datenstruktur
  • ruft update_view auf

update_view

  • aktualisiert die Anzeige für:
    • den Fortschittsbalken
    • den aktuellen Frame
    • die verstrichene Zeit
    • die erwartete verbleibende Zeit

timeconvert

  • wandelt die in Millisekunden übergebene Zeitspanne in das HH:MM:SS Format um

close_plot

  • schließt den gezeichneten Plot

calc_mb

  • übergibt die Positionsdaten aus der Datenstruktur an die calculate Methode in gui_mb

calc_heat

  • übergibt die Positionsdaten aus der Datenstruktur an die calculate Methode in gui_heat

struktureller Teil

Das Gui ist so programmiert, dass die Tabs jeweils in ihrer eigenen Datei sind. Diese Dateien befinden sich in dem Ordner gui_pages.

gui_landing

ist die Startseite des Gui. Hier wird das MintGrün-Logo angezeigt und eine Kurzanleitung zur Benutzung des Programmes.

gui_input

zeigt zwei Schaltflächen zum Öffnen des Videos und der Kaskade. (siehe openVideo oder openCascade)

gui_setup

zeigt zwei Schaltflächen zur Ditektierung der Pucks im Video. (siehe autoDetect)

gui_calc

verwaltet den Tracking-Prozess. Hier befindet sich die Schaltfläche zum Starten und Pausieren des Trackingprozesses und zeigt den aktuellen Fortschritt an. (siehe toggle und update_view)

gui_heat

zeigt die entsprechende Heatmap zur Aufenthaltswahrscheinlichkeit der Pucks an. (siehe calc_heat)

gui_mb

zeigt die Maxwell-Boltzmann-Verteilung für die Pucks an. (siehe calc_mb)

1) von J.Zerbian
ss18/gui.txt · Zuletzt geändert: 2018/08/24 18:46 von zerbian