welche GUI



  • Hi,

    ich bin für eine neue Anwendung, welche auf ein Windows-Embedded-System ausgesetzt werden soll, auf der Suche nach einer geeigneten Programmiersprache bzw. GUI-Interface für die Darstellung.

    In diesem Projekt müssen folgende Sachen implementiert werden: ein kompletter Webserver, sowie SNMP zur Fernkonfiguration des Gerätes, ein Touch-Display, um diese Einstellungen auch direkt am Gerät vornehmen zu können. Updates sollen ebenfalls über das Netzwerk sowie über USB vom User oder automatisch durchgeführt werden können.

    Als Programmiersprache würde ich gern C++ oder C# verwenden wollen. Jetzt stellt sich mir die Frage ob z.B. die MFC-Klassen eine gute Möglichkeit darstellen, die GUI zu entwickeln oder besser die Winforms oder doch was ganz anderes.

    Die GUI soll auf keinen Fall so aussehen (vom Design), so dass es für den User ersichtlich ist, dass es sich um ein Windows-System handelt. D.h. Buttons, mögliche Dialogfelder etc. müssen an das Design des Gerätes, der Firma etc. angepasst werden können.

    gruß
    Jakob



  • C++ -> Qt
    C# -> WPF



  • WPF passt sich automatisch den Windows System an, und im .Net 4.0 sind auch einige Sachen zum Thema Touch Display Support hinzugekommen.

    Wenn C# schon als Möglichkeit offen steht, und es eine neue Applikation ist, würde ich an deiner stelle nicht mehr mit dem veralteten Forms arbeiten.



  • Janjan schrieb:

    C++ -> Qt
    C# -> WPF

    Ist mit WPF es auch möglich, z.B. die serielle Schnittstelle ohne Probleme anzusprechen? Wenn ich mich nicht ganz irre, setzt WPF doch auf Java auf, oder?

    Sind die MFCs für diesen Zweck nicht mehr aktuell bzw. überholt?



  • WPF Kann mit C# und VB.Net angesprochen werden, hat mit Java überhaupt nichts zu tun.



  • Jakob Bauer schrieb:

    Ist mit WPF es auch möglich, z.B. die serielle Schnittstelle ohne Probleme anzusprechen?

    Die GUI hat so ziemlich gar nichts mit dem ansprechen der seriellen Schnittstelle zu tun.

    Jakob Bauer schrieb:

    Sind die MFCs für diesen Zweck nicht mehr aktuell bzw. überholt?

    MFC ist in der Tat nicht mehr aktuell. Außerdem musst du für MFC Lizenzgebühren zahlen, willst du das etwa?



  • Wenn das programmierte nicht OpenSource sein soll, muss doch bei QT auch bezahlt werden, oder etwa nicht?



  • dJohannes schrieb:

    Wenn das programmierte nicht OpenSource sein soll, muss doch bei QT auch bezahlt werden, oder etwa nicht?

    Nein ;o

    Nach der Übernahme von Trolltech von Nokia würde die Qt Framework auf LGPL umgestellt. Somit kann man jedes Art von Projekt starten. Man muss nur sicherstellen, dass der Anwender in der Lage ist, die Lib zu wechseln. Aber das ist erst wichtig, wenn das Projekt veröffentlich wird. Was du in deinem Keller entwickelst, ist total egal. Außerdem ist das Visual Studio Plug in auch verfügbar für alle nicht Kommerziellen.



  • Qt ist kommerziell und für reine GUI zu überladen. Nimm wxWidgets gibt nix freies besseres wenn es für viele Plattformen sein soll.



  • Man muss nur sicherstellen, dass der Anwender in der Lage ist, die Lib zu wechseln.

    Was meinst du damit? Es muss dem Anwender möglich sein, mal eben von Qt auf FLTK zu wechseln, oder wie?



  • ?Fragezeichen? schrieb:

    Man muss nur sicherstellen, dass der Anwender in der Lage ist, die Lib zu wechseln.

    Was meinst du damit? Es muss dem Anwender möglich sein, mal eben von Qt auf FLTK zu wechseln, oder wie?

    Nein, der Anwender muss in der Lage sein für das Programm die Qt zu wechseln, Beispielweise von Qt 4.6.1 auf 4.6.2. Über die Sinn streit ich mich nicht, es ist halt die Forderung in LGPL.



  • Qt kann, da LGPL, recht frei genutzt werden. Nur beim statisch kompilieren muss man eben source mitliefern oder kommerzielle lizenz kaufen

    bärensteak schrieb:

    Qt ist kommerziell und für reine GUI zu überladen.

    Blödsinn.
    Kommerziell: siehe oben
    Oberladen: quark. Qt ist modular aufgebaut, man kompiliert nur die sachen die man braucht bzw liefert nur die DLLs aus die man braucht.

    bärensteak schrieb:

    Nimm wxWidgets gibt nix freies besseres wenn es für viele Plattformen sein soll.

    Es sei denn, man will eine gut durchdachte, super dokumentierte bibliothek ohne fiese makro-höllen.

    Wenn du plattformunabhängige anwendungen mit GUI und allem möglichem drumherum in C++ entwickeln willst, ist Qt erste wahl. Ansonsten ist natürlich C# mit winforms oder WPF wirklich verdammt gute wahl. Obwohl ich den webserver wahrscheinlich in java entwickeln würde, auch wenn man das natürlich ohne konkrete anforderungen nur sehr vage bestimmen kann.



  • MasterK schrieb:

    Qt kann, da LGPL, recht frei genutzt werden. Nur beim statisch kompilieren muss man eben source mitliefern oder kommerzielle lizenz kaufen

    Nein muss man nicht. Die Object Files ausliefern reicht.



  • Zeus schrieb:

    MasterK schrieb:

    Qt kann, da LGPL, recht frei genutzt werden. Nur beim statisch kompilieren muss man eben source mitliefern oder kommerzielle lizenz kaufen

    Nein muss man nicht. Die Object Files ausliefern reicht.

    noobfrage:

    was kann man mit den .o files anfangen?



  • Ist nicht so das, was ich bisher zu dem thema gelesen habe (da heisst es immer, bei LGPL kann man dynamisch linken, sonst source mitliefern). Ist mir im endeffekt aber auch egal.



  • Bei Qt kann man entweder die GPL Lizenz nutzen, dann muss das gesamte Projekt Open Source sein, oder man benutzt die LGPL, dann müssen die Qt Bibliotheken (dlls unter Windows, .a unter Linux, was weiß ich unter Mac OSX) zusätzlich zum Programm mitgeliefert werden. Statisches linken ist mit der LGPL nicht erlaubt.



  • Janjan schrieb:

    Bei Qt kann man entweder die GPL Lizenz nutzen, dann muss das gesamte Projekt Open Source sein, oder man benutzt die LGPL, dann müssen die Qt Bibliotheken (dlls unter Windows, .a unter Linux, was weiß ich unter Mac OSX) zusätzlich zum Programm mitgeliefert werden. Statisches linken ist mit der LGPL nicht erlaubt.

    http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License schrieb:

    Essentially, if it is a "work that uses the library", then it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use "a suitable shared library mechanism for linking". Alternatively, a statically linked library is allowed if either source code or linkable object files are provided.

    In der Lizenz wird kein Wort über die technische Sache verloren.



  • Mal ernsthaft, wer entwickelt noch GUIs in C++???? Gibt es echt noch welche die sich sowas antun??? tztztz



  • Selbstverständlich, gibt ja auch wenig plattformunabhängige Alternativen.



  • So nicht richtig, für wxWidgets oder QT gibt es genug Bindings an andere Sprachen und wenns um Performance geht kann man in fast allen dieser Sprachen auch C Module mit einbinden. Whats the problem?


Anmelden zum Antworten