[HOWTO] Welches Toolkit für GUIS?
-
Hab GTK hinzugefügt und QT geupdated.
rya.
-
Der Text zu Qt ist leider nicht mehr ganz aktuell:
Dieses Toolkit ist ein
kommerzielles(ist mittlerweile komplett LGPL-lizensiert) OpenSource-Toolkit der FirmaTrolltechNokia. Auf diesem Toolkit basiert der Linux-Desktop KDE.
Ab Version 4.5 ist QT unter LGPL veröffentlicht, welches auch die kommerzielle Nutzung erlaubt, solange dynamisch gelinkt wird. (ah okay, denke, das erste "kommerziell" könnte aber zu abschreckend wirken [so wie bei mir :)])
Das Toolkit kommt mit einem Designer, einem Übersetzungesprogramm, welches ähnlich wie GNUs gettext arbeitet. Zusätzlich hat es den QT-Assistant, welches es dem Entwickler erlaubt, die Dokumentation in einem eigenen Format abzulegen, welches Platformübergreifend nutzbar ist. Ähnelt ein wenig den *.chm-Hilfedateien von Microsoft.{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
Da Qt eine Art Präprozessor (qmakemoc (qmake ist nur eine Art Metamakefile, ähnlich CMake)) verwendet, ist es leider nötig, dass eine Projektdatei händisch erstellt wird, das die Erstellung des Makefiles für den jeweiligen Compiler regelt. Das macht es für Einsteiger in C++ und vor allem für Leute, die den Umgang mit Makefiles bzw Programmen wie Bakefile oder CMake nicht gewohnt sind, nicht einfach.
Abhilfe schafft hier ein kostenloses Integrationskit für Eclipse und ein zukaufbares Integrationskit für Visual Studio bzw Visual C++ ab Standard. Oder man verwendet Code::Blocks, welches die Integration von QT von Haus aus mitbringt. Es gibt auch eine IDE für QT, welche sich QDevelop nennt. Dieses ist allerdings NICHT aus dem Hause Trolltech, sondern ein seperates Projekt.
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} (generell obsolet seit QtCreator, händisches Editieren nur selten nötig)Seit Version 4.5 kommt QT mit QtCreator, eine sehr gute und intuitive IDE mit integriertem Editor. Liefert auch als Compiler optional MinGW mit,
der benötigt wird, bietet Unterstützung für Microsoft's Compiler, kann aber generell für jeden Compiler angepasst werden. QtCreator führt alle nötigen Schritte selbst aus und es macht richtig Spaß damit zu arbeiten, da auch das Intellisense und Debugging gut funktioniert.
Dessen nicht genug, kann QT sogar mit Hilfe von OpenGL direktes Rendering anbieten und ist daher als Toolkit für Game-Applikationen wie Level-Designer etc geeignet (kann das jemand bestätigen? <- DirectX wird nicht direkt unterstützt)
Kleine Anmerkung: Das Toolkit schimpft sich selbst "High-Performance-Toolkit".(Quelle?)Hier nochmal alle Punkte auf einen Blick:
* Sehr komplettes Toolkit
* Viele Beispiele die den Einstieg erleichtern
* Beispielhafte Dokumentation
* Eigene Projektdateien und Vorbearbeitung durch eigenes (mitgeliefertes) Programm nötig
* Platformübergreifend: Linux, Mac, WindowsXP.
* Unterstützt direktes DirectX (windows only) und OpenGL-Rendering.
*Nativ aussehendeNative Widgets sowie eine Handvoll Styles, welche die Widgets anderer Betriebsysteme und Fenstermanager imitieren.
* Style-Support
* Stylesheet-Support (Stylesheets und Styles gibt es beides in der Qt-Welt, sind aber unterschiedliche Unterframeworks)
-
Hallo Leute,
ich bin neu hier im Forum.
Habe bisher immer Win32-Anwendungen mit Delphi entwickelt, möchte aber zukünftig weitestgehend plattformunabhängig in C++ programmieren.
Welche Libs sollte ich mir eurer Meinung nach reinziehen? Es gibt ja regelrechte Forenkriege zwischen Qt und wxWidgets Verfechtern. Vielleicht gibt es ja auch noch andere Empfehlungen von euch...Etwas eingerostete Grundkenntnisse in C++ habe ich noch, denke ich. Habe früher Konsolenprogramme und MFC programmiert.
Für mich ist wichtig zukunftsorientiert und plattformunabhängig zu programmieren, deshalb will ich weg von Delphi.
Der Einstieg sollte nicht zu schwer sein. Kostenlos wäre natürlich am besten. IDE Kenntnisse habe ich in Code::Blocks und Visual Studio Express Edition.
Wichtig wäre auch, ob die Lib auch in der Arbeitspraxis eingesetzt wird, man will ja auch an die eigene Job-Sicherheit denken.Vielleicht hat der eine oder andere einen guten Tipp oder persönliche Erfahrungen für mich...
MfG watchdogg
-
wxWidgets wird genauso in der Praxis eingesetzt wie QT.
Unreal Engine nutzt als Beispiel wxWidgets für das Fenster bzw den Editor.
Beides ist zukunftssicher.
Beide haben Vor- und Nachteile.
Wenn du auf Nummer sicher gehen willst, lern beide :P.
-
[quote="watchdogg"]Hallo Leute,
ich bin neu hier im Forum.
Habe bisher immer Win32-Anwendungen mit Delphi entwickelt, möchte aber zukünftig weitestgehend plattformunabhängig in C++ programmieren.
Welche Libs sollte ich mir eurer Meinung nach reinziehen? Es gibt ja regelrechte Forenkriege zwischen Qt und wxWidgets Verfechtern. Vielleicht gibt es ja auch noch andere Empfehlungen von euch...MfG watchdogg[/quote]
Der Krieg wird nicht aufhoeren, auch wenn ich nicht nachvollziehen kann, warum.
Aus meiner persoenlichen Sicht gibt es eigentlich sein es Qt unter der GPL gibt, da nix mehr zu diskutieren, und spaetestens seit da LGPL draufsteht, sollte die Lizenzdiskussion aufgehoert haben.
Zum konkreten Vergleich: Qt ist mit grossem Abstand das Portabelste, was im Moment im Gui-Bereich im Angebot ist. Was auf einer Plattform laeuft, laeuft auch auch auf den anderen (und das ist Windows, Linux, Mac, ein paar antike Unixe, WinCE, Symbian, Maemo/Meego; Android und iOS in Arbeit). Mit wxWidgets hast Du immer was, was auf A gut aussieht, auf B noch existiert und auf C noch nie von Nutzern gesehen wurde und auf D, E, F und G nicht mal entwickelt wird.
Zum Thema Community-Support: Auf IRC Freenode im Moment: #qt 521 Nutzer, #wxwidgets 53 Nutzer. #qt-creator 116 Nutzer, #codeblocks 9. Braucht man nicht weiter zu kommentieren, denke ich.
Ansonsten haette ich noch
http://www.google.com/trends?q=qt%2C+wxwidgets&ctab=0&geo=all&date=all&sort=0
zu bieten. Interessant sowohl der absolute Vergleich, als auch der Trend.
-
Jo Flamewars werden nicht aufhören solange Leute wie du so nen Schwachsinn über wxWidgets verbreiten und QT in den Himmel loben.
-
Vielleicht kann man das auch mal hinzufügen. Ich bin begeistert
-
Meine Güte, ist das praktisch nur ein Entwickler der da dranhängt? Das sieht ziemlich interessant aus, morgen wird durch den Code gewühlt.
-
Hallo, ich möchte unter Windows 7,8,10,… mit VC 2017 programmieren. Welche Klassenbibliothek sollte ich benutzen?
Ich habe schon (bis 2005) mit VC 6, MFC programmiert und hatte gute Erfahrung damit.
Jetzt geht es um ein neues Projekt: 1. Hardware Programmierung, 2. Datenbank, 3. Internet-Verbindung, …
Meine erste Wahl wäre “VC 2017 mit MFC“. Nach meiner Recherche im Internet die Entwicklung von MFC ist gestoppt.
Ist Desktop-Anwendung-Entwicklung mit WPF (Windows Presentation Foundation) eine gute Wahl?
Wenn es um Web geht, dann benutze ich: PHP, JavaScript, jQuery, HTML, Linux server debian/ ubuntu, Postfix Mailserver (Dovecot, Ubuntu), Webserver Apache.
Bei MFC kann man CHtmlView, CDHtmlDialog, … verwenden, um z.B. leichter HTML und JS für die Oberfläche zu benutzen. Kann man auch mit WPF für die Oberfläche von Desktop-Anwendungen auch HTML und JS verwenden?
Wie wäre es die Wahl von Sciter (oder QT)?
Laut https://sciter.com/: “… Sciter allows using time proven, robust, and flexible HTML and CSS for GUI definition, and GPU accelerated rendering.”
Wäre es eine schlechte Entscheidung, wenn man VC 2017 mit Sciter kombinieren würde?(PS: Ja, ich habe die Beiträge im Forum gelesen, trotzdem möchte ich speziell in meinem Fall eure Meinung darüber hören)
Vielen Dank im Voraus,
Sandro.
-
Aus heutiger Sicht (2024):
MFC wird zwar nicht mehr aktiv weiterentwickelt, ist aber stabil und für klassische Desktop-Anwendungen immer noch geeignet, besonders wenn du bereits damit vertraut bist.
WPF ist eine gute Wahl für moderne Desktop-Anwendungen unter Windows, bietet umfangreiche Möglichkeiten zur Gestaltung und ist ideal, wenn du eine flexible und anpassbare Benutzeroberfläche benötigst. WPF unterstützt jedoch nicht direkt HTML und JavaScript für die UI. Für Web-ähnliche Inhalte könntest du das WebView2-Steuerelement nutzen (basiert auf Chromium).
Qt ist robust und eine verbreitete Bibliothek für plattformübergreifende GUI-Entwicklung. Es bietet viele Funktionen für verschiedene Anwendungsbereiche, könnte aber eine steile Lernkurve haben, wenn du bisher hauptsächlich mit MFC gearbeitet hast.
Sciter ist eine interessante Option, wenn du HTML/CSS für die GUI verwenden möchtest. Es ist leichtgewichtig und bietet GPU-beschleunigtes Rendering. Die Kombination von VC mit Sciter könnte eine gute Wahl sein, insbesondere wenn du eine plattformübergreifende Lösung in Betracht ziehst und dir die Flexibilität von HTML und CSS wichtig ist.
WPF ist ideal für moderne, Windows-spezifische Anwendungen, während Sciter und Qt mehr Flexibilität und plattformübergreifende Möglichkeiten bieten.
-
@Erhard-Henkes
Da hast wxWidgets und ImGui vergessen
-
Da hast du recht. wxWidgets ist eine inzwischen klassische Variante:
https://www.henkessoft.de/wxWidgets/wxWidgets_001.htmlImGUI kenne ich bisher nicht. Kannst du hierzu weiter ausführen?
Selbst neige ich inzwischen eher zu C# und WinForms.
Mit C++ verwende ich WinAPI, MFC oder SFML.
-
@Erhard-Henkes sagte in [HOWTO] Welches Toolkit für GUIS?:
ImGUI kenne ich bisher nicht. Kannst du hierzu weiter ausführen?
Ich habe mir bisher nur ImGui angeschaut und es ist ein kleines feines GUI Framework. Viel weiß ich daher nicht.
Aber es gibt eine hübsche Webseite hierzu: