Welche GUI soll ich nehmen?



  • dot schrieb:

    Wenn man C++ programmiert, wird man früher oder später mit dem System reden wollen.

    Oder auch nicht unbedingt... Bei uns in der Firma hat kaum jemand direkt mit der WinApi zu tun. Das sind vielleicht 2-3 Leute, mich eingeschlossen. Wir bauen etwas an der Qt selber rum, wenn uns etwas nicht passt (und wir verwenden sie auch für Dateisystemzugriffe und Netzwerkkommunikation), dann haben wir eine COM Zwischenschicht, um die wir uns kümmern müssen, und natürlich muss man ab und zu verschiedene Problemchen beheben, wenn man mit anderen Programmen interagiert. Sonst hat keiner irgendwas mit der WinApi zu tun.



  • Mechanics schrieb:

    Sonst hat keiner irgendwas mit der WinApi zu tun.

    Dennoch hat also selbst dort jemand was mit der WinAPI zu tun...



  • dot schrieb:

    Mechanics schrieb:

    Sonst hat keiner irgendwas mit der WinApi zu tun.

    Dennoch hat also selbst dort jemand was mit der WinAPI zu tun...

    Klar, das wollte ich ja nie abstreiten. Ich wollte nur sagen, dass man als einzelner Entwickler durchaus durchs Leben kommen kann, ohne jemals mit der WinApi zu tun gehabt zu haben. Und wenn man sie jetzt noch nicht braucht, würde ich sie auch nicht von sich aus lernen wollen, weil sie einfach relativ komplex und unangenehm ist, vor allem wenn man sich noch nicht auskennt.



  • Welche Sprache mit welchem Framework ist denn gut für GUI-Anwendungen geeignet und steht auf allen Plattformen in robuster Form zur Verfügung?
    Es gibt keinen Grund, warum man nicht auch in modernem C++ eine GUI-Bibliothek hinbekommt, die ohne MOC und Krams auskommt, außer dass es keinem kommerziellen Hersteller dient, da dies kein Vendor-Lock-In bietet. Und so kocht eben jeder sein eigenes kleines Süppchen. Apple macht Objective-C, Microsoft knallt WinRT unter C++ und was nicht noch alles.

    Die moderneren Teile der WinAPI sind durchaus brauchbar, manche erst im zweiten Anlauf und dort fällt einem dann auch schnell auf, wie sehr das mit guter C++-Kapselbarkeit einhergeht. Aber das eigentliche Fenstersystem und Gdi/Gdiplus und wie Direct2D umgesetzt ist zählt eindeutig zu den Verbrechen an der Menschheit.



  • @decimad
    Also rätst du mir von der WinAPI ab, da die unnötig kompliziert und/oder "schlecht" gecodet ist? Zumindest der GUI Teil?

    @dot&Mechanics
    Vielleicht sollte ich mich, sollte decimads Beitrag stimmen, erst mkt der WinAPI beschäftigen, wenn es so weit ist, dass ich sie benötige. Wenn ich am Programmieren dran bleibe wird es sicher, allein schon aus Neugier, so sein, dass ich der WinAPI begegne. 🙂

    Dann wird es wohl Qt. Die WinAPI behalte ich aber im Hinterkopf. fltk kann, denke ich, nicht mehr als Qt, weshalb ich es wohl nicht benutzen werde. Aber trotzdem behalte ich es auch im Hinterkopf.
    Vielen Dank euch allen. Ihr habt mir sehr geholfen (zum, ich glaube, dritten Mal 😃 )



  • Ja, ich würde Dir auf jeden Fall zu Qt raten. Aber Qt ist wegen Moc, Lizenz und Unternehmen dahinter auch nicht der Weisheit letzter Schluss... Aber das beste momentan für C++ verfügbare - eine riesige Community und extrem aktive Entwicklung sprechen außerdem dafür. Du musst nur selbst entscheiden, wie sehr Du Dich auf das ganze drumherum einlässt, also alles, was nicht die GUI betrifft.



  • Oh mein Gott, jetzt ist es raus! Mein Neujahresgruß Account kann aufgrund von Unachtsamkeit eindeutig zugeordnet werden! *imbodenversink*



  • @ηatnθ
    Interessanter Name 😃
    So werde ich es tun. Erst mit Qt anfangen, fltk mal ansehen und ggf. auch verwenden und dann mal die WinAPI benutzen, wenn ich angeben will oder sie brauche oder sie mal ausprobieren will. 😃



  • Also die WinAPI ist beileibe keine Haxx0r-Angelegenheit, mit der man groß angeben könnte und eigentlich auch ziemlich gut dokumentiert. Sie ist eher so wie die Klisché-Freundin, die vor alles, das man theoretisch irgendwann einmal gebrauchen könnte, und auch wirklich nur das, ein paar Klimbim-Sachen stellt.



  • Also ist sie doch nicht so schlecht aber kompliziert?
    Aber ich bleibe bei meinem Entschluss Qt zu verwenden, fltk mir anzusehen und ggf. auch verwenden und die WinAPI mir ansehen und ggf. auch verwenden.
    Trotzdem danke. 🙂



  • Atlan schrieb:

    Also ist sie doch nicht so schlecht aber kompliziert?

    Schaus dir selber an 😉 Nein, ich find sie auch nicht so schlecht und so kompliziert, aber ich arbeite schon seit über 15 Jahren ab und zu damit. Und wenn man langsam damit anfängt, muss man auch nicht so viel können. Aber grad das ganze GUI Zeugs in der WinApi ist sehr umständlich und unangenehm. Das muss man sich einfach nicht antun, wenn man nicht muss.
    Ich hab früher (so vor 15 Jahren angefangen) Delphi prorgammiert und da musste ich noch einiges mit der WinApi machen. Die Delphi Komponenten waren hauptsächlich Wraper um WinApi Controls und Funktionen. Da war der Einstieg aber nicht so schlimm, ich musste nichts from Scratch machen. Ich hatte ja schon meine Fenster, Events usw. Ich konnte mir aber z.B. das Handle von einem Control holen und damit was machen, z.B. dem Control eine Message schicken, oder eine Funktion aufrufen, die der Delphi Wrapper nicht implementiert hatte. War alles halb so wild, waren ja nur einzelne Funktionen, in einem problemlos funktionierenden Grundgerüst.
    So ein Grundgerüst mit der WinApi aufzubauen finde ich aber ziemlich ekelhaft. Das sind so 50-100 Zeilen Code, die man braucht, um überhaupt mal ein Fenster anzuzeigen. Und dann diese ganzen Windows Messages, die alle unterschiedlich aufgebaut sind, diese Funktionen mit 20 Parametern usw... Muss nicht wirklich sein.



  • Dieser Thread ist größer geworden, als ich gedacht hätte. 😃

    @Mechanics
    Ich finde ja schon Funktionen mit fünf Parametern schlimm. 🙂
    Zum Glück gibt es Dinge wie Qt, fltk, Cinder, MFC usw, die für mich diese Funktionen aufrufen. 🙂 Jetzt hab ich mal eine Vorstellung, wie das Arbeiten mit der WinAPI ungefähr ist. Danke.



  • 1. Qt runterladen
    2. Die Beispiele und Tutorials im QtCreator ansehen und glücklich werden...



  • Wer sagt, dass nur wxWidgets und Qt ernstzunehmen sind?

    GTKmm gibt es ebenfalls. Gnome, Xfce und Lxde basieren auf GTK+ und GTKmm ist ein C++ Wrapper auf GTK+.

    Ich mag GTKmm.

    Mit freundlichen Grüßen


  • Mod

    SepGuest schrieb:

    Wer sagt, dass nur wxWidgets und Qt ernstzunehmen sind?

    GTKmm gibt es ebenfalls. Gnome, Xfce und Lxde basieren auf GTK+ und GTKmm ist ein C++ Wrapper auf GTK+.

    Ich mag GTKmm.

    Mit freundlichen Grüßen

    Für Linux stimmt dass, aber Windows oder Mac wirst du schwierig mit GTK abdecken können IMHO.
    Und für mich ist das Problem bei allen Wrapper Libraries die auf C aufsetzen, C.
    Was eben nicht von C++ aus zugängig ist, muss man über C Schnittstellen umständlich aufrufen.

    Es bleibt auch immer die Frage, was für Feature benötigt werden, nur eine Simple GUI, oder noch andere Anforderungen, welche evtl. nicht von allen Frameworks abgedeckt werden. Eine universelle Antwort gibt es daher für mich heute eigentlich nicht mehr auf die Frage.

    Qt bietet vieles neben UI noch, wie Datenbanken, JSON, Netzwerk + HTTP(s), Neuerdings auch Android und iOS.



  • Moin,
    entschuldigung, dass es so lange gedauert hat. 🙂

    Die Features: sind nicht sooo wichtig, da es auch noch Boost gibt, mit Dingen, die in qt womöglich auch drin sind, aber Boost benötige ich für das Eine oder Andere doch.
    Plattformunabhängigkeit ist mir egal, solange es auf Windows läuft. Meine Programme werden sowieso nie auf einem Linux Rechner laufen und wenn doch dann eben in einer VirtualMachine.

    Mir ist nun eine Professionel Version vom Visual Studio 2013 in die Hände gefallen. Da ist MFC ja schon bei. Qt habe ich mir angesehen und ich fand es nicht so sympathisch, was auch am Editor gelegen haben könnte.
    MFC ballert mir die Projekte mit nutzlosen Dingen zu, die ich gar nicht haben will aber dafür scheint es eine Lösung zu geben. Deshalb werde ich wohl erst mal mit MFC weiter arbeiten und wenn mich das irgendwann nervt, steige ich halt noch mal um. 😃

    Danke noch mal an alle. 😃


Anmelden zum Antworten