naums hat geschrieben:Ich bin ja nu mittlwerweile schon recht weit gekommen: ich kann PHP, C recht gut, C++ etwa genauso gut; aber mit C/C++ kann ich zurzeit nur Konsolenprogramme erstellen. Ich will jetzt bald weiterschreiten, und in die GUIs einsteigen, die Frage ist nur: Welche soll ich da nehmen? Die Windows GUI fliegt raus, weil ich platformunabhängig schreiben will.
Welche GUI ist die Anfängerfreundlichste und die Beste?
Hier sollten wir mal ernsthaft sammeln udn das dann in einem Artikel einfließen lassen. Hier entstehen Tutorials für GTk, NCurses, Qt, wxWidgets (extra alphabetisch, um keine Wertung vorzunehmen ^^).
Welche also nehmen?
- Qt (habe ich noch nie programmiert), ist aber zum einen nicht nur eine GUI, die recht komfortabel sein soll, sondern gleich ein ganzes Framework mit viel Funktionalität in anderen Bereichen. Qt ist neuerdings wohl lizenzrechtlich auch kostenlos für kommerzielle Programme nutzbar.
- Gtk ist das Fundament für Gnome, ist überschaubar zu programmieren, vor fünf Jahren war die Dokumentation leider noch nicht vollständig, aber sie reicht auch für anspruchsvolle Aufgaben. Ich hatte halt ziemlich anspruchsvolle Dinge damit vor... ^^ Auch hier gibt es einige weitere Klassen, die einem das Leben erleichtern können, aber Qt muss hier wohl die Nase vorn haben. Gtk steht unter LGPL, wenn ich mich recht entsinne. GTKmm (die C++ Bindings) waren vor fünf Jahren noch recht instabil, darum habe ich nach den ersten Experimenten mit GtkMM alles mit den C-Bindings gemacht. Gtk läuft unter Mac und Windows, aber die Optik lässt teilweise zu wünschen übrig. Trotzdem gibt es auch bekannte Programme in GTK auf Windows, Pidgin z.B.
- wxWidgets ist eigentlich keine GUI, sondern ein Wrapper, der auf Windows die Windows GUI nimmt, auf Linux GTK und auf MacOS wohl Carbon (die Mac GUI).
- NCurses ist eine sehr einfach gehaltende GUI für die Konsole, die z.B. für Programme wie den Midnight Commander, Vi oder Aptitude ermüglicht.
Ich würde sagen, wenn Du dringend eine GUI brauchst, such Dir eine aus.
Wenn nicht, lerne erstmal C++.