[Metalab] Qt
Thomas Perl
thp at thpinfo.com
Tue Feb 22 23:08:27 CET 2011
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
More information about the Metalab
mailing list