GUI



  • Hallo.

    Mal eine Frage, wenn Ihr freie Auswahl hättet, welches Tool würdet Ihr wählen um Eure Oberflächen zu erstellen.
    Anforderungen sind nur wie folgt:
    1.) Sollte sich der Auflösung anpassen und immer im Vollbildmodus laufen
    2.) Aussehen der Steuerelemente solle "modern" wirken. Icon auf Button etc..
    3.) Betriebssytem wäre Windows 7 embedded.
    4.) Sehr performant.

    Was wäre Eure Aushwahl?

    Bin für Anregungen dankebar.

    Gruß

    Oli_1977



  • Was heißt denn sehr performant?

    Zuerst dachte ich an .NET und WPF. Wenn du es schneller haben willst, dann wäre QT vielleicht nicht schlecht. Und wenn du wirklich alles im Griff und extrem schnell haben willst, dann mach einfach alles selbst. Benutz z.B. png's für deiner Buttons damit sie cool aussehen usw.

    Je performanter es werden soll, desto mehr Arbeit wird es aber.



  • Oli_1977 schrieb:

    3.) Betriebssytem wäre Windows 7 embedded.
    4.) Sehr performant.

    WinAPI



  • Ich wuerde AutoIt nehmen:
    Native Windows GUI (nicht so wie Java), einfach zu machen, wenig Schnickschnack aber Konzentration auf das wesentliche, DLLs sind aufrufbar, laesst sich zu einem Programm ohne runtime compilen.
    Man kann eigentlich alles machen, was ein normales Programm braucht, aber halt keinen Schnickschnack.

    Fuer mehr Auswahl wuerde ich dann .NET verwenden und wenn es grafisch noch schoener werden soll, dann eingebetteten Flashplayer oder sogar Browser und fuer volle Kontrolle bei maximaler Geschwindigkeit OpenGL.

    GUIs sind bei der Performance eigentlich unwichtig, weil die aufgerufenen FUnktionen die Laufzeit bestimmen. Die sollten natuerlich schnell genug sein oder Multithreading fuer ein ruckelloses GUI verwenden.



  • Oli_1977 schrieb:

    2.) Aussehen der Steuerelemente solle "modern" wirken. Icon auf Button etc..

    Icon auf Button, ja? Das war vor 20 Jahren total in Mode 🙂
    http://v9softs.com/wp-content/uploads/2014/02/turbo.jpg

    Oli_1977 schrieb:

    Was wäre Eure Aushwahl?

    Was auch immer sie wäre, sie würde von anderem abhängen als dem, was du genannt hast.

    - Was muß denn performant sein an der Anwendung? Das UI ist (wie andere schon gesagt haben) sicherlich kein Flaschenhals, höchstens vielleicht bei WPF...
    - Soll das UI Übergangsanimationen bieten?
    - ...per Touchscreen bedient werden?
    - ...eher Multimediainhalte, eher Daten darstellen? Oder die Steuerung von irgendwas ermöglichen?
    - Soll es vom Benutzer skalierbar sein?
    - Meinst du mit "modern" sowas wie "Modern UI in Windows 8", oder doch was anderes?
    - Unter welchen Bedingungen wird das benutzt, als Kiosk-Mode von beliebigen Laien oder als Maschinensteuerung von technisch versierten Leuten?
    - Und gibt es schon bestehenden Code, für den du das UI erstellen sollst, und falls ja, in welcher Sprache ist der geschrieben?



  • Oli_1977 schrieb:

    Mal eine Frage, wenn Ihr freie Auswahl hättet, welches Tool würdet Ihr wählen um Eure Oberflächen zu erstellen.
    Anforderungen sind nur wie folgt:
    1.) Sollte sich der Auflösung anpassen und immer im Vollbildmodus laufen
    2.) Aussehen der Steuerelemente solle "modern" wirken. Icon auf Button etc..
    3.) Betriebssytem wäre Windows 7 embedded.
    4.) Sehr performant.

    Sind das jetzt die Anforderungen für das Tool oder für die Oberfläche die du damit entwerfen willst?
    So wie der Satz geschrieben ist kann es sich mMn. nur auf das Tool beziehen. Was mich dann aber wieder komisch dünkt, denn die Anforderungen (1) und (2) sind für das Tool ja wohl ziemlich wurst, und Windows 7 embedded nen komisches OS für den Entwickler-Rechner.

    Falls die Oberfläche gemeint ist die es zu entwerfen gilt, dann finde ich es wiederrum komisch dass du primär nach einem Tool fragst und nicht nach einem Framework/einer GUI-Library.

    Und die Antwort auf die Frage nach dem Framework ist schwer zu beantworten wenn man nicht mehr über die Anwendung weiss, und was du unter "sehr performant" verstehst.
    Man kann in WPF z.B. relativ performante GUIs machen. Verglichen mit GUIs die mit manchen anderen Frameworks gemacht wurden können die z.T. sogar ein gutes Stück schneller sein, weil sehr viel (alles?) hardwarebeschleunigt läuft (so passende HW vorhanden ist - wenn nicht wird die Sache dann auch entsprechend lahm).
    An die Speed die du mit handgestricktem Direct3D Code oder ggf. einer 3D Engine rausholst wirst du dabei aber nicht drankommen.

    Und dann eignet sich auch nicht jedes Framework gleich gut für jede Anwendung.



  • Mogen.

    Ja war wahrscheinlich schlecht ausgedrückt.
    Danke erstmal für die vielen Antworten.

    Ziel der Anwendung ist eine Maschinensteuerung.
    Aktuell ist die Anwendung noch im MFC geschrieben. Solllte aber auf Grund neues OS und Hardware überarbeitet werden.
    Problem war bisher folgendes:

    1. Auf der Hardware soll diese Visualiserung, eine Maschinensteuerung und eine zweite Visualisierung laufen.

    2. Ändert sich in Zukunft die Hardware bzw- die Auflösung, muß die Software immer auf Vollbildmodus laufen. Ansich ja keine Problem. Jedoch sollen sich die ganzen Steuerelemente auf Gund der neuen Auflösung verschieben und Größe anpassen. Schreibt man Anwendung mit dem VS 2005 und C#, kann man Sie ja andocken. Ist dies für embedded Geräte schon möglich?
    Das Betriebssystem kann sich von Windows 7 embedded noch zum Nachfolger von Windows CE 6 ändern. Damit würden sich soweit ich weiß auch die Möglichkeiten der GUI-Programmierung einschränken. Möchte das dynamische Anpassen ungern selber schreiben.

    3. Eine hardwarebeschleunigte Darstellung der Oberflächen (Grafikkarte nicht vorhanden) ist nicht zu erwarten. Problem ist hier dann halt auch, das Maschinensteuerung und zweite Visualisierung immer laufen. Damit immer wenig Performance als normale Bürorechner. Maschinensteuerung hat hier immer höchte Priorität.

    Danke & Gruß

    Oli_1977



  • Also ich denke es wäre schon gut zu wissen was das Ziel-OS überhaupt ist.

    Und was die Hardwarebeschleunigung angeht: wenn nicht gerade irgend ein uralt Chip zum Einsatz kommt wie sie z.T. noch auf Server-Mainboards verwendet werden, dann sollte das kein Problem sein. Also was z.B. die in der CPU integrierten Grafikeinheiten können ist vollkommen ausreichend.



  • Oli_1977 schrieb:

    2. Ändert sich in Zukunft die Hardware bzw- die Auflösung, muß die Software immer auf Vollbildmodus laufen. Ansich ja keine Problem. Jedoch sollen sich die ganzen Steuerelemente auf Gund der neuen Auflösung verschieben und Größe anpassen.

    Das spricht für vektorbasiertes UI. WPF, FireMonkey, JavaFX, oder selber zeichnen mit Direct2D. Oder wenn Windows Embedded 8.1 infrage kommt, eine Windows-App mit XAML. Das wäre wahrscheinlich die modernste Lösung.

    Oli_1977 schrieb:

    Das Betriebssystem kann sich von Windows 7 embedded noch zum Nachfolger von Windows CE 6 ändern.

    Windows Embedded Compact 2013? Laut Microsoft kann man dafür mit Expression Blend Oberflächen entwerfen; das würde dafür sprechen, daß WPF unterstützt wird (was mir neu wäre). Falls dem so ist, dann wirst du kaum etwas komfortableres finden. Aber ich glaube eher, daß sich das auf Silverlight bezieht.

    Edit: Hier ist die Dokumentation zu XAML auf Windows Embedded Compact. Scheint sich weder auf WPF noch auf Silverlight zu beziehen.



  • Wir entwickeln Steuerungsvisualisierungen und verwenden dafür Java 8 + JavaFx als GUI Framework. Keine Probleme damit.



  • Ich würde so gut wie immer das nehmen, womit ich mich am besten auskenne. In der C++ Welt wärs also Qt, in der .NET Welt eher WinForms, hätt aber auch kein Problem damit, mich wieder in WPF reinzudenken. Selbst das sind aber keine Muss Kriterien... Wenn jemand gesagt hätte, der will ich eine WxWidgets oder GTK Gui, dann hätt ich halt das genommen. Entscheidungskriterien wären aber auf jeden Fall nicht "performant" oder "gibt einen Layoutmanager", das bieten heute so ziemlich alle Frameworks.



  • Mechanics schrieb:

    Ich würde so gut wie immer das nehmen, womit ich mich am besten auskenne. In der C++ Welt wärs also Qt, in der .NET Welt eher WinForms, hätt aber auch kein Problem damit, mich wieder in WPF reinzudenken. Selbst das sind aber keine Muss Kriterien... Wenn jemand gesagt hätte, der will ich eine WxWidgets oder GTK Gui, dann hätt ich halt das genommen. Entscheidungskriterien wären aber auf jeden Fall nicht "performant" oder "gibt einen Layoutmanager", das bieten heute so ziemlich alle Frameworks.

    sehe ich auch so...

    ich kann qt oder wxwidgets empfehlen...
    beides meiner meinung nach gut geeignet c++ guis zubauen...

    bei qt hast du auch plattform unabhänigkeit wenn du es von vornherein so programmierst...
    desweiteren qt-> geht so gut wie für alle gänigen plattformen... bis vielleicht auf i.welche spezial systeme... (da müsst ich jett googeln... 🙄 )
    (bei wxwidgets kenne ich mich da nicht aus, geht sicherlich aber auch plattformunabhänig)

    es gibt auch zu qt viele tutorials und dokumentation sowie beispiele...
    dies ermöglicht dir auch wenn du noch nicht so erfahren bist im umgang mit qt ein angenehmes arbeiten mit gelegtlichen erfolgserlebnissen... 😕

    von winapi oder ähnlichen würde ich absehen wenn du nicht gerade nur ein fenster mit button willst... (qt, wxwidgets) -> zumal winapi nicht plattformunabhänig ist, was ja ein entscheidender vorteil eines nativen c++ fensters wäre 😃 ...

    alles selber coden - ist meiner meinung nach fehleranfällig veraltet und einfach viel zu kompiliziert(abgesehen vom zeitaufwand)... (außer zu lern zwecken oder ähnliches)

    hoff ich konnt etwas helfen...



  • Mittels QT5 eine kleine Anwendung schreiben die einen Fullscreen-Webkit initialisiert und eine Seite lädt. Eigentliche UI dann mit HTML5 umsetzen. Läuft auf Windows Embedded wunderbar.


Anmelden zum Antworten