schnelle, kompakte und plattformübergreifende GUI-Bibliothek für C++?
-
Hallo. Ich weiß, dass es schon etliche Threads für dieses Thema gibt. Jedoch brauche ich eine "speziellere" GUI-Bibliothek und kann einfach keine passende finden. Nach stundenlanger Suche im Netz und hier im Forum habe ich mich nun doch dazu entschiedenen einen Thread zu öffnen.
Ich programmiere nun seit etwa einem halben Jahr in Standard-C++ und moechte aus der Konsolenprogrammierung "rauskommen". Ich moechte auf einfache Weise GUIs erstellen können. Die erzeugten Executables sollen Stand-Alone sein (eventuell erzeugt durch statisches Linken), klein sein und schnell sein. Ausserdem soll Closed-Source-Programmierung und Programmierung kommerzieller Software damit möglich sein (evtl. eine modifizierte LGPL oder ähnliches).
Die Bibliothek soll auch plattformübergreifend sein. Zumindest fuer Windows und Linux.Leider ist die Auswahl nicht sonderlich gross...
Qt scheidet es, da statisches Linken in der LGPL-Version nicht erlaubt ist - desweiteren sind die ausführbaren Dateien alles andere als klein und schnell (soviel ich jedenfalls gehört habe).
wxWidgets ist mir ebenfalls nicht kompakt genug.
Ich habe zwar tatsächlich eine Bibliothek gefunden, die meine Ansprüche erfüllt (nämlich FLTK) - allerdings gibt es dafür kaum bis gar keine Dokumentation (Englisch-Kenntnisse sind zwar vorhanden - die reichen aber gerade mal dafür um eine Kleinigkeit im Netz nachzusehen und nicht um etwas zu lernen - daher brauche ich deutschsprachige Dokumentationen).
Könnt ihr mir bei meiner Entscheidung helfen?
-
Um englisch wirst du in der Programmierung nicht herum kommen.
Eigentlich hast du doch deine GUI Library schon gefunden (FLTK). Setzt dich lieber noch ein wenig mit der Englischen Sprache auseinander und wörter kannst du dir ja auf bei irgendwelchen Translationdienste übersetzen lassen.
Zu FLTK kann ich leider selber nicht sagen, aber die haben doch bestimmt auch beispiel Programme die man sich anschauen kann und daraus lernen.Nur mal so aus reiner neugier, was war dir an wxWidgets nicht kompakt genug?
-
Hallo und danke für deine Antwort.
Ich habe mein altes Schulenglisch schon oft gebrauchen müssen - ich wünschte ich hätte zu meiner Schulzeit besser aufgepasst, dann hätte ich diese Probleme nicht.wxWidgets ist durchaus interessant, jedoch sind die Libs - wenn auch statisch gelinkt - immer noch 2 - 3 MB gross. Dies mag in Zeiten von DSL & Co. zwar für andere nicht mehr so wichtig sein - für mich aber - der sogar noch mit Floppy Disk
-
Sorry für Doppelpost. Kann mir ehrlich gesagt nicht erklaeren, wieso die Nachricht abgeschickt wurde...
FLTK wäre halt DIE Bibliothek fuer mich. Es gibt aber leider keine deutschsprachige Doku dafür, so dass das Erlernen für mich ziemlich schwierig ist.
Beispielprogramme wären schon nicht schlecht, oder eine Art "Code-Tutorial" (ihr wisst schon was ich meine). Das wäre dann auch in englisch okay.Oder gibt es noch andere Bibliotheken dieser Art mit mehr Dokumentation, dass auch ein Anfänger damit klarkommt?
Eigentlich bin ich mit der Wahl einer geeigneten GUI-Bibliothek ziemlich überfordert...
-
probier mal 'UPX' aus.
das ist ein Programm, das unnötigen quatsch aus exe-Dateien entfernt.
wxWidgets-Programme werden bei mir dann immer unter einem MB groß.
-
Also ich würde bei deinen Anforderungen auch wx empfehlen, mit optimierten Einstellung (in wx/setup.h) und VisualStudio-Kompiler (gcc und mingw machen größere Exe) kommt man auf akzeptable Größe. Diese kann man noch mit UPX (upx -9 meineapp.exe) packen.
Genial einfach ist es mit Qt möglich, gerade auch für andere Plattfromen zu entwickeln. Am besten das SDK herunterladen, dort ist alles enthalten IDE (Qt-Creator) mit genialem integrierten GUI-Editor und Hilfe.
Das SDK gibts auch für Linux und MacOS, einfach installieren, Projekt rüberkopieren und neu kompilieren, fertig.
Nachteil sind natürlich die großen Qt-DLLs, die man bei LGPL mitliefern muss. Aber Qt ist eine sehr umfangreiche Library (etwas besser als wx) und man kommt schnell voran.
Oder schau dir mal http://www.ultimatepp.org/ an.Update: Desweiteren musst du bedenken, das FLTK nur eine GUI-Bibliothek ist. Bei wx und Qt sind Netzwerk, XML, Datenbank und vieles mehr drinnen, also komplett.
-
Unreg schrieb:
Es gibt aber leider keine deutschsprachige Doku dafür, so dass das Erlernen für mich ziemlich schwierig ist.
Beispielprogramme wären schon nicht schlecht, oder eine Art "Code-Tutorial" (ihr wisst schon was ich meine).Wirklich ausführliche und umfangreiche Dokumentationen, Tutorials und Support wirst du wohl nur bei den größeren GUI Toolkits finden, wie Qt und wxWidgets.
Die englische Sprache (auch das Fachenglisch des IT Bereichs) als Softwareentwickler perfekt zu beherrschen ist dabei ein Muss.
Auf weniger als 2-3 MB für eine statisch gelinkte Executeable wirst du wohl kaum mehr kommen.
Wenn es dir wirklich um möglichst kleine Executeables geht solltest du auch auf jeden Fall in Betracht ziehen, direkt die API des jeweiligen Systems zu verwenden (zum Beispiel die WinAPI unter Windows), dann liegst du bei ein paar hundert Kilobyte.
Auf ebenfalls ein paar hundert Kilobyte kommst du wenn du z.B. Qt dynamisch linkst.
Die zugehörigen DLLs kannst du ja separat anbieten/ausliefern.
Das hat den großen Vorteil dass der Benutzer die Laufzeitbibliotheken nur einmal installieren muss und dann damit all deine Programme verwenden kann.Beim statischen Linken hingegen zwingst du dem Benutzer praktisch auf, die Laufzeitbibliothek x Mal auf seinem System zu haben (auch wenn sie immer im jeweiligen Programm verpackt liegt).
Aus Effizienzgründen ist also dynamisches Linken so gut wie immer die bessere Entscheidung.