Qt vs. GTK+

Zum einen um Off-Topic zu vermeiden, zum andern weil ich selbst lange in C mit GTK+ Programme geschrieben habe und jetzt frisch auf Qt umgestiegen bin.

Also ich kann aus Erfahrung sagen das man mit Qt (zu einem unmerkbaren höheren Ressourcenverbrauch) wesentlich Produktiver Programmieren kann.

Man verbraucht im Durchschnitt für das eine zeile, wofür man mit GTK+ 4 Zeilen braucht.

Zudem hat Qt viele so nette dinge wie Phonon Support, Webkit Support, Netzwerksupport und und und

Man kann mit 10 Zeilen Code einen Browser Programmieren der die Webkit engine nutzt.

Einen Media Player, einen FTP Client, und und und

Also in meinen Augen ist die Qt Bibliothek VIEL mächtiger als die GTK+ Bibliothek.

Der Slogan “Code less. Create More” trifft voll und ganz zu.

Zudem hat Qt seit 4.5 die Möglichkeit unter GTK+ Oberflächen wie GNOME/LXDE/XFCE direkt GTK+ zum zeichnen der Programme benutzen. Also nicht einfach nen anderen Style drüber hauen sondern direkt GTK+ zum zeichnen benutzen (Funktion funktioniert auch nur wenn auch wirklich GTK+ installiert ist).

Die Funktion gibts aber auch für die Oberflächen von Windows und der von Mac OS X.

GTK+ sieht für mich zudem immer noch nach riesem gebastel aus. Ein Halb objektorientiertes C oder sowas in der art.

Zudem rennen nicht nur den GTK+ die Entwickler weg, die leute wos programmieren auch. Man muss auch zugeben das Qt 4.4 nicht gerade ein Traum wahr, aber ich denke mit 4.5 ist das mehr als nur wieder gut gemacht worden.

Ich programmiere (wenn ich was mit GUI mache) eig. nur mit GTKmm (C++ Wrapper von GTK+).
Qt hab ich mir mal angesehen und es sieht für mich verdammt nach der MS-Lösung aus. Die Libary ist viel zu aufgebläht und verändert den C+±Standard mit sinnlosen Defines.
Wenn ich ein Programm schreibe, das wirklich was tun soll, dann ist es mir doch hoffentlich wert, ein paar Zeilen zum Aufbau eines Fensters zu tippen.

Weiters frage ich mich, was es mir bringt, Webkit direkt in eine Anwendung einzubinden? (Geht mit GTK auch, nur da kann ich die Libs extra laden)

Außerdem stellt sich die Frage der Sinnhaftigkeit Qt-Programme nicht unter KDE zu verwenden, vor allem weil dann beim Aufruf eines simplen Dialogfensters über 100MB an SOs/DLLs geladen werden…

Der Slogan “Code less. Create More” trifft völlig zu - Auf alle Anwendungen, die sich die Qt-Entwickler schon lange einfallen haben lassen.

[quote=“michi7x7”]Ich programmiere (wenn ich was mit GUI mache) eig. nur mit GTKmm (C++ Wrapper von GTK+).
Qt hab ich mir mal angesehen und es sieht für mich verdammt nach der MS-Lösung aus. Die Libary ist viel zu aufgebläht und verändert den C+±Standard mit sinnlosen Defines.
Wenn ich ein Programm schreibe, das wirklich was tun soll, dann ist es mir doch hoffentlich wert, ein paar Zeilen zum Aufbau eines Fensters zu tippen.

Weiters frage ich mich, was es mir bringt, Webkit direkt in eine Anwendung einzubinden? (Geht mit GTK auch, nur da kann ich die Libs extra laden)

Außerdem stellt sich die Frage der Sinnhaftigkeit Qt-Programme nicht unter KDE zu verwenden, vor allem weil dann beim Aufruf eines simplen Dialogfensters über 100MB an SOs/DLLs geladen werden…

Der Slogan “Code less. Create More” trifft völlig zu - Auf alle Anwendungen, die sich die Qt-Entwickler schon lange einfallen haben lassen.[/quote]
Öhm das tut GTKmm aber auch xD sogar noch viel extremer

es gibt nicht mal mehr normale Datentypen: int wurde durch ein typedef mit gint ersetzt xD also das Argument zieht garantiert nicht xD

Wie gesagt du bist weder gezwungen die Funktionen von Qt zu nutzen, noch brauchen Funktionen die du nicht benutzt und nicht einbindest logischerweise auch kein Speicher :wink:

Und die typischen Qt Programme unter GNOME (VLC, VirtualBox) laden bei mir keine 100mbs an SOs/DLLs ich glaub da hast du irgendwas falsch gemacht

Weil manche Programme (wie z.b. so kleine KDE Spiele) wurde da Qt ja auf Handys läuft 1:1 auf nen Handy portiert. Das wär unmöglich das da laufen zu lassen. Also wie gesagt da scheint i-was bei dir schief zu laufen.

Und GTKmm finde ich da wesentlich unsauberer. Ein Wrapper um eine Bibliothek die C komplett verschandelt damit man damit seinen spaß auch unter C++ hat^^

Und eben nö, man sollte sich nicht ewig mit dem Aufbau Fenster aufhalten weil die Funktion eines Programms viel wichtiger ist.

Und da Qt nicht mehr Speicher braucht weil es weniger Code braucht sondern wahrscheinlich viel eher weils ne native C++ Klassenbibliothek ist und die von einem einfach nicht verlangen auf alles zu achten^^

Das mit GTK+ is ja auch sehr hinderlich mit den boxen die zum Container hinzugefügt werden und Objekten die zu den boxen hinzugefügt werden. Bei Qt ersparst die schon mal das ganze mit dem Container durch den Konstruktor und weil du eben einfach ein Fenster von QFrame ableiten kannst und nicht gezwungen bist in der Klasse ein QFrame zu erstellen und dann dazu alles hinzuzufügen.

Das sind die Größen aller DLL’s (in kB) um ein GTK-Programm unter Windows lauffähig zu machen:

 104 intl.dll
 152 libatk-1.0-0.dll
 776 libcairo-2.dll
 136 libgdk_pixbuf-2.0-0.dll
 816 libgdk-win32-2.0-0.dll
 460 libgio-2.0-0.dll
 168 libglade-2.0-0.dll
1008 libglib-2.0-0.dll
  32 libgmodule-2.0-0.dll
 292 libgobject-2.0-0.dll
4732 libgtk-win32-2.0-0.dll
 316 libpango-1.0-0.dll
  80 libpangocairo-1.0-0.dll
  96 libpangowin32-1.0-0.dll
 200 libpng12-0.dll
 768 libsigc-2.0-0.dll
  56 zlib1.dll

knapp 10MB. Ich will sehen, wie Qt da mithalten will…

Dadurch gibt es eine extrem klare Gliederung, und ein klar geregeltes Verhalten bei Größenänderung des Fensters

Dann ist das kein Fenster mehr, sondern ein Frame…

Ich hab keine einzige DLL aufm Rechner :wink: wird wohl daran liegen das ich kein Windows hab :stuck_out_tongue:

Also bei mir sind die libs von GTK+ alle zusammen 1,6 MB groß (der ganze /usr/lib/gtk-2.0 Ordner). Gut zu wissen das die unter Windows über 10x so groß sind^^ Und der Qt4 ordner ist 54,7 MB groß.

Ja du kannst auch von QWindow ableiten oder QMainWindow oder von QSchlagMichTot^^ es ging ja eher ums prinzip :stuck_out_tongue:

Aber Qt ladet ja nicht die ganzen Bibliotheken die es hat, das wäre ja schreckenerregend Ö_Ö genau so wenig wie GTK+ alles ladet. Es wird nur das geladen was

  1. Includiert wurde
  2. Im Laufe des Programms auch benutzt wird

Wenn du nen simples Fenster mit einem einzigen Button erstellst und das startest braucht das ganze Programm sage und schreibe 114kb

Im Endeffekt isses dann doch wieder eine Geschmackssache :ps:

Ob man Qt, oder GTK+ benutzt. Eig. schon, ja. Obowhl Qt eben viel mächtiger ist als GTK+.

Aber Qt hat halt auch seine Nachteile, weil auch wenns nicht viel ist, mehr RAM brauchen tuts trotzdem.

Und es gibt keine möglichkeit in C mit Qt zu Programmieren. Und da ich persönlich am liebsten in C schreibe hat da natürlich GTK+ für mich persönlich klar gewonnen.

Weil du kannst eben auch mit GTKmm, GTK+ in C++ nutzen.

Auf der anderen Seite benutz ich in Java dann doch lieber Qt weil die Java umsetzung von Qt wesentlich ausgereifter als die von GTK+ ist und auch besser funktioniert.

Und ich finde die API von GTK+ um welten besser wie die von Qt.

Dafür is im gegenzug Anjuta nahezu unbrauchbar -.- der Qt-Creator dagegen is einfach Genial.

Aber ich denke gegen den strich gerechnet würde ich eher in GTK+ als in Qt programmieren.

Anjuta hab ich noch nie probiert, aber kennst du Glade schon?

Ja ich kenne Glade.

Glade ist keine IDE sondern ein Interface Builder (der bis spätestens GNOME 2.30 durch GtkBuilder komplett ersetzt sein soll und nichts mehr soll von Glade abhängen)

Anjuta ist eine IDE, sowas wie Eclipse oder QtCreator