Bedienoberfläche Simulator

  • Hallo zusammen,


    lasst mich etwas ausholen. Wie ich an anderer Stelle bereits beschrieben habe ist der Loksim (also sowohl Simulator als auch Editor) ein historisch gewachsenes Projekt und nutzt einige Technologien, die a) inzwischen veraltet und b) ekelhaft sind.


    Eine davon ist MFC. Das benutzen wir unter Anderem für die Benutzeroberflächen, also (zum Glück nicht mehr) alle Dialoge, Fenster, Menüs. Wir wollen davon wegkommen und setzen dabei auf Qt. Das ist eine moderne C++-Bibliothek, mit der man betriebssystemunabhängige Benutzeroberflächen gestalten kann und noch vieles mehr. Alle Dialoge die wir in den letzten Jahren im Editor neu hinzugefügt haben verwenden das schon und wir wollen nach und nach auch den Rest umstellen.


    Die Tatsache, dass ich für das SEP (mit dem man z.B. Fahrpulte ansteuern kann) einen neuen Einstellungsdialog im Simulator brauche hat mich gestern Abend dazu bewogen, für den Simulator ein paar Vorbereitungen zu treffen, um Benutzeroberflächen mit Qt bauen zu können und dabei habe ich gemerkt "hey, so viele Dialoge hat der Simulator ja eigentlich nicht". Ich denke dass es ein schaffbares Ziel ist, in vernünftiger Zeit die gesamte Benutzeroberfläche vom Simulator - und nur um den soll es hier zunächst gehen - auf Qt umzustellen.


    Wenn wir die Benutzeroberfläche anfassen, dann wollen wir das aber gleich richtig machen, also bei der Gelegenheit die Benutzbarkeit verbessern und da denke ich ist es nicht so verkehrt die Nutzer, also euch, einzubeziehen. Dabei denke ich vor allem an Folgendes:


    a) Ich möchte zur Diskussion stellen, ob die derzeitige Form mit dem schrittweisen Assistenten wirklich so gut ist oder wir es anders machen wollen. Ich kenne jetzt den Loksim aus Benutzersicht mein halbes Leben und ich habe mich dran gewöhnt, aber wirklich praktisch finde ich es nicht. Ich fänd es besser, wenn man nach dem Start ein Fenster sieht in dem man alles was die Fahrt selbst angeht (Fahrplan, Startpunkt, Uhrzeit, Fahrzeug, Wetter, ...?) im Blick hat. Der Assistent setzt momentan alles in Abhängigkeit zueinander, tatsächlich gibt es aber nach dem Funktionsprinzip vom Loksim nur die Abhängigkeit Fahrplan->Startpunkt->Uhrzeit. Ein einziges Fenster hätte den Vorteil, diese nicht existenten Abhängigkeiten auch in der Benutzerführung zu eliminieren. Wie seht ihr das? Wie würdet ihr euch das wünschen? Bitte beschränkt euch zunächst auf Vorschläge, die keine oder wenig konzeptionell neue Funktionalitäten im Simulator bräuchten.

    b) Um Benutzeroberflächen mit/für Qt zu designen muss man nicht programmieren können. Mit dem Tool Qt Designer kann man sich die einfach zusammen klicken. Das Resultat ist dann eine Beschreibungsdatei mit der Endung .ui, mit denen wir dann weiter arbeiten können um tatsächlich die Dialoge zu erzeugen und das bestehende Programm damit zu verwursten. Gestern abend habe ich mal eben drei statische einfache Dialoge vom Simulator im Qt Designer nachgebaut, das geht wirklich flott von der Hand. Ich möchte euch aufrufen, davon Gebrauch zu machen und eure Idee insbesondere wenn sie voran schreitet und mit anderen Ideen kombiniert wird darin zu modellieren. Das ist einfacher als Objekte bauen ;) Ich möchte die Sammlung der .ui-Dateien für den Loksim als open source auf Github packen. Ihr könntet dann ggfs. darauf auch Pull Requests machen (auf deutsch: "Schau mal, ich hab hier was gebaut, bitte übernehme das in deine Sammlung" - für Details verweise ich auf die Doku vom Versionsverwaltungssystem Git [1])


    Viele Grüße

    Martin

    [1] https://git-scm.com/book/de/v2

  • Hallo Zusammen,


    nur für den Fall, das jemand denkt, jetzt muß ich dafür Qt und Git und programmieren lernen.

    Nein!


    Mit Qt ist es einfach einfacher etwas zu zeigen, wie es sein könnte, da ich da nur etwas zusammenklicken muss. Von Programmieren muß ich da keine Ahnung haben.

    Der Rest ist nice to have.


    Als Beispiel zeige ich mal dieses Bild:

    (@Mod: Sorry für die Bildbreite, bitte ggf. eindampfen.)



    Das ist mein derzeitiger Entwurf für einen Fahrzeugeditor.

    Und da ist zur Zeit fast keine Logik vorhanden, nur ein klein wenig um bestimmte Anzeigen zu steueren aber kein produktiver Code.

    Das ist das, was Martin letztlich meint, einfach eine Oberfläche zusammengebaut.


    Alternativ kann natürlich das ganze auch mit Worten oder mit einer Skizze beschrieben werden.


    Gruss

    Uwe, mit Erwartungen 8)

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

    Einmal editiert, zuletzt von taler () aus folgendem Grund: Fipptleher

  • Hallo,


    mal abgesehen von jeglicher Programmierarbeit:

    Uwe, den Entwurf mit den seitlichen "Laschen" finde ich sehr gut, das gefällt!


    Und das Ziel, moderner und betriebssystemunabhängig zu werden, begrüße ich natürlich sowieso!


    Gruß

    Jan

  • Hallo Jan,


    das ist aber der Editor und nicht der Simulator. Und um diesen geht es, gell. :-)


    Gruss

    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Hallo Uwe,


    schon klar. ;-)

    Auf der Basis deines Editor-Designs könnte man ja auch ein neues Simulator- bzw. Hauptprogrammdesign ansetzen -

    dann eben mit Laschen für Strecken, Führerstände, usw.


    Gruß

    Jan

  • Ja, die Reiter finde ich auch toll. :)

    Das man diese Technik auch im Simulator einsetzen könnte, hatte ich so garnicht auf dem Schirm.


    Gruss

    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.