# QT - Pro und Kontra



## Sway (29. April 2005)

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._


----------



## Tobias K. (30. April 2005)

moin


Bald gibt es hier ein Videotutorial über QT: http://www.tutorials.de/tutorials200246.html


mfg
umbrasaxum


----------



## Sway (1. Mai 2005)

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


----------



## KristophS (2. Mai 2005)

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.
> 
> ...



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)


----------



## Sway (2. Mai 2005)

Danke. 
QT embeeded... daran hab ich echt nicht gedacht, aber ich hab den Sharp Zaurus 5500SL, der ja QT-Embeeded als GUI hat... *freu*


----------



## Thomas Kuse (2. Mai 2005)

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 ...)


----------

