Hi, (nitpick: bei Qt ist das "t" klein; QT = Quicktime) On Tue, Feb 22, 2011 at 08:47:28PM +0100, Georg Lippitsch wrote:
Am 22.02.2011 19:56, schrieb Berni _:
Mich plagt: die Unterschiede zw. Dialogen und Fenster (und Widgets) zu
In QT sind alle GUI-Element von QWidget abgeleitet, d.h. jedes Fenster und jeder Dialog, aber auch Kn�pfe, Lables, und alles andere sind prinzipiell mal auch QWidgets. Ein QDialog bietet im Gegensatz zu anderen Fensterarten die M�glichkeit, dass die Funktion, welche man zum Anzeigen aufruft, so lange blockt, bis man den Dialog wegklickt. Ist sinnvoll wenn man z.B. irgend eine Ja/Nein-Abfrage machen will, weil man einfach nur auf das Return von QDialog.exec() warten muss, und nicht einen EventHandler schreiben.
Das Hauptfenster einer Applikation sollte normalerweise ein QMainWindow sein. F�r alle anderen Fenster, die nicht QMainWindow sind und auch nicht w�hrend der Anzeige blocken sollen, kann man direkt QWidget verwenden.
Es gibt da auch noch QML/Qt Quick. Damit kann man in einer JavaScript-�hnlichen, deklarativen Sprache die UI definieren. Ist f�r Touch-UIs interessant (aber nicht nur). Eine QML-View "l�dt" man in ein QDeclarativeView (und die ist von QWidget abgeleitet). QML gibt's ab Qt 4.7. Man kann dann viele UI-Sachen direkt in JavaScript l�sen, wenn man mag (und meistens mag man). Und wenn die Zielplattform OpenGL (ES) kann, l�sst sich das (im Gegensatz zu QWidget-basierten UIs) auch gleich mal per Zweizeiler hardwarebeschleunigen; sogar GL-Shader lassen sich zuk�nftig einbauen, wenn man lustig ist[1]. Kommunikation zwischen C++ Backend und QML UI erfolgt dann �ber Properties, Signals und Slots, und das Trennen von UI und Backend-Code funktioniert mit diesem Ansatz sehr sch�n (man wird bissl dazu gezwungen).
Ist QT ein weiser Schritt? Das geh�rt ja zu Nokia.
Das ist nat�rlich immer eine Philosophie-Frage. Ich pers�nlich finde QT so ziemlich das beste universelle Frameworks �berhaupt, man kann richtig viel damit machen, es ist clever designed und l�uft auf verschiedenen Plattformen. Lizenz ist LGPL, d.h. es handelt sich um echte freie Software. Da "st�rt" auch Nokia nicht, f�r den Fall das die mal bl�d werden wird es sicher von der Community weiter gepflegt.
Qt gibt's unter 3 Lizenzen, das geht ungef�hr so (IANAL): * Kommerzielle Lizenz (grob gesagt: du musst �nderungen an Qt nicht teilen, und darfst statisch linken, ohne selbst (L)GPL sein zu m�ssen) * LGPL (du darfst deine closed source Anwendung dynamisch gegen Qt linken, musst �nderungen an Qt selbst aber unter die LGPL stellen) * GPL (nur wenn dein Programm auch unter die GPL f�llt) Meistens trifft aber eh die LGPL zu, au�er du willst dein closed source Programm statisch gegen Qt linken (zB wenn du auf Windows abzielst, und nur "eine kleine exe" ausliefern willst anstatt exe + die gro�en Qt DLLs).
Wenn du mal im Lab w�rst Georg, dann k�nnte ich dir zeigen was ich bis jetzt gemacht habe. Zeitvorgaben f�r mein Projekt habe ich, muss aber nicht die Woche sein.
Bin voraussichtlich am Freitag da, nach Clifford's Kurs k�mma mal schauen. Sonst m�ss ma was ausmachen, vorzugsweise Wochenende ....
Wenn QML/Qt Quick in Frage kommt, kann ich dir da auch gerne was zeigen. lg thp [1] http://youtu.be/VMz5Z_vdDSA