QT - Pro und Kontra

Sway

Erfahrenes Mitglied
Ich habe mir heute ein QT Buch gekauft und lese nur von positiven Eigenschaften des Frameworks. Das klingt alles schön und gut, doch wo Sonne ist, gibt bekanntlich auch Schatten. Nur wo?
Mit den GUIs in C++ habe ich bis auf Grundkenntnisse in MFC keine Erfahrungen sammeln können. Bisher hab ich hauptsächlich Konsolenanwendungen geschrieben, oder in Java mit SWT gearbeitet.
Daher interessieren mich folgende Punkte sehr.

Als „Besonderheit“ wird hier vor allem die „Plattformunabhängigkeit“ genannt. (Stimmt das?)
OK, das kann Java mit AWT, Swing oder mit SWT angeblich auch. Die Betonung liegt hier auf angeblich.

QT soll sehr schnell sein … (wie schnell, schneller/langsamer als was?)
Den KDE-Desktop als Referenz zu nehmen wäre vermutlich Blödsinn. Ich will ja keinen Windowmanager schreiben, sondern „normalgroße“ Anwendungen.

Mit QT zu arbeiten soll sein leicht sein
Nach dem lesen der ersten 50 Seiten kam mir das Konzept recht bekannt vor. Das erinnert sehr an Swing bei Java. Täuscht der erste Eindruck?

QT bietet viele (leicht zu benutzende) Funktionen
Beim durchblättern habe ich gesehen das dort eine DB Anbindung, Netzwerkfunktionen, etc. vorhanden sind, die auch recht einfach aussehen. Sind die von der Performance her brauchbar?


Was gibt es noch für Vor- und Nachteile?
Die Lizenzpolitik von Trolltech außen vor gelassen.


:)
 
Zuletzt bearbeitet:
Ein Videotutorial hab ich hier gesehen. Zwar mehr über den QT-Designer, aber immerhin. Ich vermute mal das das Live-Tutorials sich ebenfalls mit dem QT-Designer beschäftigen wird.


Was mich aber noch weiterhin interessiert, wo die Schwächen von QT liegen. Ich kann mir nicht vorstellen das es nur positives zu berichten gibt
 
Wie man an KDE erkennen kann, ist QT durchaus leistungsfähig. Es kommt nur darauf an was du willst.
Das größte Problem dabei ist aber, auch von dir als Vorteil genannt worden:
QT bietet viele (leicht zu benutzende) Funktionen
Beim durchblättern habe ich gesehen das dort eine DB Anbindung, Netzwerkfunktionen, etc. vorhanden sind, die auch recht einfach aussehen. Sind die von der Performance her brauchbar?

Folgendes stammt nicht direkt von mir, sondern aus einem andererm Programmier-Forum.
Dort habe ich es vor einiger Zeit gelesen und versuche es so sinngemäß wie möglich wieder zu geben.

Durch diese sehr vielen Funktionen wird der gesamte Code aufgeblähter, auch wenn sie natürlich nur optional sind und erst eingebunden werden müssen.
Außerdem lässt man sich leicht dazu verleiten, nur noch z.B. Qstrings anstatt Ansi-Strings zu benutzen und dadurch verfehlt es irgendwo den Sinn der Unabhängigkeit.
Man begibt sich zwar in eine gewisse Plattformunabhängigkeit, die durchaus vorhanden ist, aber man begebt sich sogleich in Abhängigkeit von QT, eine Portierung ist nur schwer möglich.

Ein weitere Nachteil ist, dass vieles eben nicht QT::String o.ä sondern QString heißt; es werden keine Namespaces benutzt und es wirkt nicht ganz so schön.

Ist natürlich auch noch sehr allgemein, schau mal unten bei den Links, im dortigen Thema wird es kontrovers disktuiert.


Die Lizenzpolitik von Trolltech außen vor gelassen.
Wurde die nicht auch positiv verändert ?

Achja, hier die Quellen auf die ich mich beziehe (falls man nicht in externe Foren linken darf, bitte löschen o.ä).:
http://www.mrunix.de/forums/showthread.php?t=32691&highlight=Vergleich (allgemeine Vor- und natürlich auch Nachteile)
http://www.mrunix.de/forums/showthread.php?t=32085&highlight=Vergleich (hier wird von einem KDE-/QT-Entwickler gesagt, dass es z.B. auch QT embedded gibt und generell etwas über die Portabilität)
 
Zuletzt bearbeitet:
Danke.
QT embeeded... daran hab ich echt nicht gedacht, aber ich hab den Sharp Zaurus 5500SL, der ja QT-Embeeded als GUI hat... *freu*
 
Hallo!

Ja "bald" wird es dazu mal ein richtiges Live-Event geben, aber alles zu seiner Zeit.
Aktuelle befindet sich in der Tutorials-Sektion ein Video über die grundlegende Benutzung von Qt zur Erstellung einer GUI-Applikation.
Qt ist aber viel mehr als das.
Zum einen, da man eigentlich keine nativen C++ Bibliotheken mehr benutzt, und zum anderen man auch die Template-Struktur und die "Verweigerung" von Exceptions mit übernimmt.

Die Featureliste ist lang, sehr lang. Von Datenbanken, über Plugin-Erweiterungen bis zur einfachen Generierung von GUIs zur Laufzeit.

Das "problematische" an Qt ist eigentlich nur der arg verzwickte Quellcode mit moc_* -Dateien, *.ui.h - Dateien und teilweise Qt-Spezifischer Sytax (Programmierung des SIGNAL-SLOT Mechanismus pro Fenster/Widget)
Damit das nicht so schwer zu handhaben ist benutze ich das Visual Studio 6 bzw KDevelop.
Alle anderen IDEs sind da nicht ganz so benutzerfreundlich für Qt.

Geschwindigkeitsprobleme habe ich mit Qt bisher nicht gehabt, solange man auch fertige Speichercontainer etc benutzt. (QValueList, QPtrList, QStringList ...)
 
Zurück