Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ss18:gui [2018/08/23 14:58] zerbian |
ss18:gui [2018/08/24 18:46] (aktuell) zerbian |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
======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 ist in den den funktionalen und in den strukturellen Teil geteilt. | + | 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.((von J.Zerbian)) |
- | =====funktionaler Teil===== | + | 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===== | ====gui_main.py===== | ||
- | Mit dieser Datei startet man das Hauptprogramm. Hier findet die KOmmunikation zwischen dem Tracking und der Datenstruktur statt. | + | Mit dieser Datei startet man das Hauptprogramm. Hier findet die Kommunikation zwischen dem Tracking und der Datenstruktur statt. |
===init=== | ===init=== | ||
- | * initialisieren des Guifensters | + | * Initialisieren des Guifensters |
- | * anlegen des Seitenmanager für die einzelnen Tabs | + | * Anlegen des Seitenmanager für die einzelnen Tabs |
===openVideo=== | ===openVideo=== | ||
Zeile 17: | Zeile 19: | ||
===autoDetect=== | ===autoDetect=== | ||
- | * ruft die setup-Methode des Tracker Moduls | + | * ruft die setup-Methode des Tracker Moduls auf |
- | * initialisiert der Pucks für die Datenstruktur | + | * Initialisieren der Pucks für die Datenstruktur |
===manualDetect=== | ===manualDetect=== | ||
===outputTable=== | ===outputTable=== | ||
- | * öffnet einen Speicherndialog zum speichern der Puckdaten aus der Datenstruktur in einer Tabllendatei | + | * öffnet einen Speicherdialog zum Speichern der Puckdaten aus der Datenstruktur in einer Tabellendatei |
===toggle=== | ===toggle=== | ||
- | * sorgt dafür, dass der Trackingvorgang pausiert und fortgesetzt werden kann. | + | * sorgt dafür, dass der Trackingvorgang pausiert und wieder fortgesetzt werden kann. |
- | * ruft ''task'' auf | + | * ruft ''task'' auf, wenn das Tracking fortgesetzt wird |
===task=== | ===task=== | ||
- | * ruft die run-Methode des Tracker Moduls | + | * 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===== | =====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) |