SiD
Hallo,
ich möchte mich gerne mal an die GUI Programmierung mit C bzw. C++ wagen.
Als Anwender bevorzuge ich ja eigentlich GTK, aber ich habe mal ein paar einfache Beispielprogramme in GTK und QT4 angeschaut und auf den ersten Blick scheint mir QT4 einfacher zu sein.
Also, was ist leichter zu lernen?
Kennt jemand gute (Anfänger) Tutorials zu GTK und QT4? - deutsch bevorzugt, muss aber nicht 😉
danbruegge
Das selbe Thema macht mich gerade auch ratlos.
GTK gefällt mir an sich besser, da ich auch GTK nutze, nur scheint Qt mehr Flexibilität zu bieten, wie z.b. für PCs und Handys. Außerdem ist die QML Idee ziemlich gut. Das Qt Projekt scheint auch Aktiver zu sein als das GTK Projekt.
//Edit
Mal so nebenbei, warum schreibt eigentlich keiner eine Denktopumgebung in Qt? Es gibt ja mittlerweile schon reichlich in GTK, nur fehlt z.b. eine Leicht gewichtige in Qt. Das wäre doch einmal ein Interessantes Projekt oder ist es zum Scheitern verurteilt?
piet
Naja, Qt ist kein Projekt. 😉 Es wurde von Trolltech entwickelt und später von Nokia gekauft, mit Nokia haben sich die Fortschritte und Weiterentwicklung imho stark erhöht. Von meinen Vorstellungsgesprächen (falls das für dich eine Rolle spielt) würde ich dir zu Qt raten. Qt findest du imho auch viel öfter in den Jobbörsen als GTK. Firmen wollen halt Support und da haben sie bei Qt einen direkten Ansprechpartner. Durch die LGPL (seit4.5) kannst du auch jede Lizenz für
deinen Code verwenden die du möchtest.
Qt basierte WM
http://qlwm.get.to/
http://www.antico.netsons.org/index.html
http://integrity.sourceforge.net/
ich habe noch keinen davon benutzt.
cu
P.S.:
Bitte kein Flame!!!
Dirk
KDE ist Qt ist KDE 🙂
SiD
mir gehts eigentlichnur darum was einfacher zu erlernen ist. 😉
Kinch
SiD schriebmir gehts eigentlichnur darum was einfacher zu erlernen ist. 😉
Eventuell ist auch FLTK eine Option. Ich habe noch keine größere GUI geschrieben, weil ich einfach nicht so ein GUI-Mensch bin, aber was mich an QT etwas stört, ist, dass es weit mehr als nur GUI ist und darüber hinaus auch kein richtiges C++. FLTK ist sehr schlank, schnell und hat einen GUI-Designer. Rein optisch ist es eher schlicht, aber indiviualisierbar und immerhin nicht so hässlich wie Motif.
aze
Kannst du schon C++, dann fang bei Qt4.x auf dieser Seite an:
http://doc.trolltech.com/4.7-snapshot/index.html
Die Tutorials sind sehr gut.
Zu GTK sag ich nix, hab ich zu selten verwendet 😉
Und frag lieber nicht nach "was ist leichter?", sondern schau dir die beginner-tutorials von Qt und GTK an. Entscheide dich einfach für das, was dir auf den ersten Blick besser zusagt. Wenn du keine Vorgabe für das GUI-Toolkit bei einem Projekt hast und einfach nur so GUI-Programmierung für dich lernen willst, ist das sicher der sinnvollste Weg.
Creshal
Als Anwender bevorzuge ich auch Gtk, aber Qt ist dann doch etwas einfacher zu erlernen. Hindert mich nicht dran, Gtk-Spaghetticode in C zu schreiben, das ist aber wohl nicht jedermanns Sache. 😉
Zumal Programmierung mit Gtk kein "normales" C ist, die Objektorientierung von GObject nimmt einem sehr viel ab (malloc, was ist das?).
bernarcher
Qt fand ich mit den Tutorials wesentlich leichter zu lernen. Aber ich habe einfach keine Lust mehr auf all die Spaghetti-Vererbungsorgien von mies geschriebenen C++-Programmen.
Irgendwie habe ich dann auch GTK gelernt. Hauptsächlich durch Versuch und Irrtum. Programmieren lernt sich letztlich doch nur so. Als ich das Wesentliche kapiert hatte, konnte ich auch mit der Dokumentation umgehen. Das GTK-Tutorial hatte mir nicht übermäßig viel gebracht.
The_Muh
Naja... ich mag bei QT die idee einfach nicht, ich bin ein Minimalist und versuche mich an folgenden Grundsatz zu halten: Ein Stückchen Software = eine aufhabe. Das gilt dann auch für irgendwelche Libs: eine Lib fürs Netzwerk, eine Lib für die GUI, eine Lib für Sound... und nicht eine für alles. Allein aus diesem Grund mag ich QT nicht - und hab mich damit auch noch nie auseinander gesetzt.
Was einfacher zu lernen ist kann ich dir nicht sagen, aber vielleicht hab ich dir ne Entscheidungshilfe gegeben - entweder weil du Multifunktions-kram magst und deshalb QT nimmst oder weil du genauso minimalistisch bist wie ich und GTK lernst =)
[gelöscht]
[gelöscht]
Creshal schriebAls Anwender bevorzuge ich auch Gtk, aber Qt ist dann doch etwas einfacher zu erlernen. Hindert mich nicht dran, Gtk-Spaghetticode in C zu schreiben, das ist aber wohl nicht jedermanns Sache. 😉
Zumal Programmierung mit Gtk kein "normales" C ist, die Objektorientierung von GObject nimmt einem sehr viel ab (malloc, was ist das?).
Mir drängt sich hier der Verdacht auf, dass hier Leute wieder mal Programmiersprachen vergleichen und nicht Toolkits. GTK+ kann auch mit C++, Python, Java, Mono, Vala etc. programmiert werden. Außerdem ist GTK+-C-Code kein Spaghetticode, sondern extrem sauberer strukturierter C-Code.
[gelöscht]
Wie wärs mit gtkmm? gtkmm benutzt ein weitaus moderneres und saubereres C++ als Qt (bäh moc) und ist damit meiner Meinung nach einfacher zu erlernen als Qt, wenn man C++ schon gut kennt. Fltk 2 (nicht 1) hat ganz ähnliche Stärken, ist aber nicht so umfangreich.
[gelöscht]
Stallion schriebwenn man C++ schon gut kennt.
Wenn man's schon gut kennt. Wenn nicht, ist C++ so ziemlich die schwierigste Programmiersprache zu meistern, von esoterischen mal abgesehen.
ablepharus
Denk dir einfach "Hinter Qt steckt eine boehse große Firma..." und nimm GTK 😉
Naja, Scherz beiseite, Qt ist vorallem nicht nur ein GUI Framework, da ist noch so viel kram drin, das ist unglaublich. GTK ist dagegen wirklich ein GUI Framework und wer kein C schreiben will, der soll Gtkmm nehmen das ist wirklich nett und hat auch eine gute anleitung.
Ying
Schau dir mal WxWidgets an. 😉
Mucki
Ich finde auch Qt einfacher zu lernen, vor allem weil die Doku besser ist. Bei GTK ist alles ein bisschen verstreut.
Aber Qt geht nur in C++, GTK würde auch in C gehen.
Apropos: Qt wirkt mMn strukturierter, da in GTK ein eigenes Objektsystem für C entwickelt wurde, das leicht komisch anmuttet.
Wutzara
@sunken galleon: Warum wird hier eigentlich immer ein GUI-Modul des Frameworks GNOME mit Qt verglichen. Um wirklich vergleiche treffen zu können sollte man doch Qt und GNOME vergleichen oder? Gtk ist tatsächlich nur ein GUI Modul - aber das Framework GNOME ist doch viel weitschichtiger. Es existiert eine Abstraktionsschicht für Datei-Handling. Eine Socket-Abstraktionsschicht. Und wenn man sich mal anschaut was momentan schon alles mit Vala (welches im Grunde genommen ebenfalls eine Abstraktionsschicht für das von Mucki angedeutete Objektsystem ist) so kann man _meiner_ Meinung nach beide Frameworks schon auf Augenhöhe bezeichnen.
Es kommt ja auch immer auf den Verwendungszweck drauf an. Wenn ich Bibliotheken schreiben will, glaube ich ist C/GNOME/Vala die bessere Wahl - es werden einem durch Introspection relativ flott Bindings für alle möglichen Sprachen gebastelt und kann so seine Bibliothek quer über die Sprachen verbreiten. Das geht mit Qt wahrscheinlich weniger flott - wobei ich aber zugeben muss dass ich da jetzt nicht sonderlich bewandert bin was Qt angeht. Für Plattform-Unabhängigkeit ist vermutlich Qt die bessere Lösung (was man so auf einschlägigen Seiten liest) wobei man da bei GNOME _auch_ nicht hängen gelassen wird (das geht alles - muss man nur wollen).
@Topic: Was einfacher ist, ist vermutlich eine Geschmacksfrage. Schließlich erscheint einem etwas, was man schon besser kennt immer einfacher als die Technologie die man noch nicht kennt. Ich denke, das beide leicht zu erlernen sind, da die Patterns meist die gleichen sind. Ich glaube wenn man grafisch programmieren will muss man lediglich die Grundlagen verstanden haben (Stichwort Ereignis-Orientierte Programmierung) - den Rest holt man sich im IRC #gtk+ 😉
bernarcher
Mucki schriebApropos: Qt wirkt mMn strukturierter, da in GTK ein eigenes Objektsystem für C entwickelt wurde, das leicht komisch anmuttet.
Dazu gibt es dann ja auch Gtkmm. Gtk wurde entwickelt mit Objekten als Gestaltungsgrundlage, aber notgedrungen purem C als Werkzeug. Gtkmm versucht dem abzuhelfen, indem es eine Schnittstelle für C++ liefert.
(Was nicht heißt, dass Gtk-Anwendungen dadurch wesentlich besser programmierbar sind.)
Mucki
Ich sagte ja auch GTK
würde auch mit C programmierbar sein 😉 Du kannst ja auch mal hier gucken:
www.zetcode.com Da gbt es ein paar schöne Beispiele zum nachprogrammieren und kannst so sehen, welches Framework dir besser liegt.