Forum: PC-Programmierung An die Profis, was haltet ihr von Qt?


von Toni (Gast)


Lesenswert?

Hi,
ich bin Student (technische Informatik) und möchte mich in Qt 
reinarbeiten. Meine Frage ist jetzt ob ich da die richtige Entscheidung 
getroffen habe. Gibt es eurer Meinung nach was besseres? Was wird in der 
Industrie benutzt? (Ich möchte mit Embededsystemen + GUI arbeiten 
können.)

Gruß
Toni

von Elias B. (bouni)


Lesenswert?

Hi,

Ich bin zwar kein Profi, aber was eione ganz klare stärke von Qt ist, 
ist die (fast) Platformunabhängigkeit.

In meiner Letzten Firma wurde in allen Embedded Systemen (leider) 
Windows NT/XP eingesetzt und daruf leif dann ein ich denk VCPP Program.

Mfg Bouni

von Bartli (Gast)


Lesenswert?

Im embedded Umfeld kenne ich Qt nicht, aber grundsätzlich ist es eine 
feine Sache, auch der Qt GUI Designer ist ziemlich heiss.

von madler (Gast)


Lesenswert?

Bin auch der Meinung, dass Qt ne feine Sache ist, gerade wegen der 
Plattformunabhängigkeit und es ist ein sehr umfangreiches Framework mit 
vielen Bibliotheken.
Ich denke aber, dass es in der Industrie noch nicht sehr verbreitet ist. 
Gut, ein Beispiel ist, Siemens benutzt Qt für die Bedienoberfläche von 
Bestückungsautomaten.
Gerade im Bereich Handy/Mobile Devices wird sich aber Qt wohl weiter 
durchsetzen, Trolltech ist nicht umsonst gerade von Nokia gekauft 
worden.
Ansonsten wird auch viel WindowsCE & VC++ benutzt.

von Sven P. (Gast)


Lesenswert?

Najo, Qt ist kompakt (Embedded!), portabel, sieht toll aus und ist 
quelltextmäßig so ziemlich das Hässlichste, was du finden wirst...

Ernsthaft, es ist flott und so weiter, aber du arbeitest immer mit einer 
Katze im Sack: QT bringt nämlich einen Meta-Object-Compiler mit, der 
hinter deinem Rücken den Code für des Signal-Zeuchs generiert. Eine 
saubere Lösung ist das m.E. nach nicht, aber was will man machen...

von Εrnst B. (ernst)


Lesenswert?

> ... quelltextmäßig so ziemlich das Hässlichste, was du finden wirst ...

Du hast wohl noch nie GTK, MFC oder Motif-Quelltexte gesehen...

Den Quelltext, den du als QT-Anwender programmieren darfst, ist sehr 
schön und kompakt.
Der Zusatz-Quelltext, der vom MOC generiert wird, weniger. Aber den muss 
sich ja keiner anschauen.

Das "Katze im Sack" Argument zieht auch nicht, QT ist GPL (und bei den 
Komerz-Versionen kriegst du auch den Quelltext mit), d.H. notfalls 
kannst du dir den MOC so umpatchen, dass er dir gefällt...

Klar, die Signal-Slot Geschichte könnte man auch über Templates 
erschlagen (libsigc++), und die Typinformationen/Introspection würden 
zum Teil auch über RTTI funktionieren.
Dummerweise konnten das viele C++ compiler damals noch nicht (kein 
Member-Template support etc).
Und die QT-Implementierung hat auch den Vorteil, dass zur Compile-Zeit 
noch nicht festgelegt sein muss, welche Objekte wie verbunden werden, 
was z.B. die Plugin-Entwicklung vereinfacht.

Fazit: Schau dir QT an, nutzloses Wissen ist das in keinem Fall.

von yalu (Gast)


Lesenswert?

Die C++-Spracherweiterung für das Signal/Slot-System ist C++-Puristen
natürlich ein Dorn im Auge, als Nichtpurist kann man aber damit leben.
Wie es ohne Spracherweiterung geht, zeigt libsigc++, die das Ganze
sehr elegant unter Verwendung von C++-Templates realisiert. M.W. waren
die C++-Templates zu Beginn der Qt-Entwicklung noch nicht reif und
standardisiert genug, so dass man eine andere, nach dem heutigen Stand
der Technik nicht mehr ganz passende Lösung gewählt hat.

libsigc++ wird in gtkmm, einem C++-Frontend für die GUI-Bibliothek
GTK+ eingesetzt.

GTK+ ist, zumindest auf Desktoprechnern, die direkte Konurrenz von Qt.
Die Diskussion, welches von beiden besser ist, ist endlos und deswegen
müßig. In wie weit GTK+ für Embedded-Anwendungen geeignet ist, weiß
ich nicht. Jedenfalls gibt es auch hier eine Variante, die direkt auf
einem Framebuffer arbeitet und damit ohne X11 auskommt.

Die Plattformunabhängigkeit von GTK+/gtkmm ist ähnlich wie die von Qt:
Linux, Windows, embedded Linux mit Framebuffer und MacOS X. Allerdings
kommt m.W. jede Variante von einer anderen Entwicklergruppe, so dass
die Nicht-Linux-Versionen immer etwas hinterherhinken. Funktionieren
tut aber zumindest auch die Windows-Variante ganz gut, was ich bei
selbstgeschriebenen GUI-Programmen erfahren habe, die sich ohne
Quellcodeänderungen wahlweise unter Linux oder Windows übersetzen
lassen und problemlos auf beiden Betriebssystemen laufen. Mit der
MacOS- und der Framebuffer-Version habe ich keine Erfahrung.

von Toni (Gast)


Lesenswert?

Vorerst danke für die Antworten.
Dennoch will ich auf meine Frage nochmal genauer eingehen:

Also ich hab gelernt/gesehen dass man eine Programiersprache + Framework 
nicht einfach so mal kurz lernt. Ein Schreinermeister (Tischler) der von 
sich behauptet GUT oder SEHR GUT zu sein hat das nicht kurz in einem 
oder zwei Jahr(en) gelernt. Genau so ist es meiner Meinung nach in der 
IT-Welt. Um wirklich GUT zu sein, oder anders gesagt, um wirklich 
effizient Anwendungen entwickeln zu können, muss man einiges an Zeit 
investieren. Die Frage ist nun, (wie schon erwähnt) mit welchem 
Werkzeug/System will ich arbeiten/lernen. Bisher habe ich sehr gute bis 
gute Kentnisse in C++.

Ich weiß, die Frage ist ansich nicht direkt zu beantworten, aber 
vieleicht schreibt der eine oder andere noch einpaar Erfahrungsberichte. 
Das hilft meistens sehr.

Toni

von madler (Gast)


Lesenswert?

Ok, wenn Du das so siehst...
In diesem Fall würde ich Dir nicht empfehlen Dich als Student 2 oder 3 
Jahre mit so einem Spezialthema wie Qt zu beschäftigen. Wenn Du gut 
C/C++ kannst ist das schonmal ein solider Background und Du wirst keine 
grossen Schwierigkeiten haben Dich in was ähnliches einzuarbeiten.
Mir ging das ähnlich wie Dir und ich habe mich daher vor ca. einem Jahr 
ein bischen in Qt eingelesen und das dann in 4 kleinen (2-3 Wochen) 
Projekten eingesetzt. Wenn jetzt mal was grösseres kommen sollte, kann 
ich sagen, das ich da solide Grundkenntnisse habe und mich dann 
dranwagen.
Aber mehr Zeit würde ich da nicht reinstecken, es gibt noch andere 
wichtige Sachen und vielleicht gibts in 2 Jahren Qt gar nicht mehr (ok 
ich weiss ist unwahrscheinlich, aber ich würds nicht drauf ankommen 
lassen ;)

Achso, und was ich bis jetzt wirklich in der Industrie gesehen habe: 
Delphi (auf Windows), Eigenentwicklung (auf DOS!), Kylix (auf Linux), 
VC++ (auf WinCE)
Gerade darum würde ich mich an Deiner Stelle nicht zu sehr 
spezialisieren...

von alex (Gast)


Lesenswert?

es gab eine Zeit, da habe ich auch mal geglaubt, meine Kenntnisse von 
C/C++ seinen gut bis sehr gut - bis ich die Schule abgeschlossen habe 
und zum ersten mal einen MISRA Checker über den Quellcode laufen lassen 
musste und ab da habe ich meine Meinung irgendwie geändert...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.