[Metalab] QT

Georg Lippitsch georg.lippitsch at gmx.at
Tue Feb 22 20:47:28 CET 2011


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.


> Zu wissen ob es gscheit ist ein Projekt mit UI anzufangen, oder besser
> alles ausschreiben. Was hat es mit dem moc auf sich?

Was Du hier mit "UI" meinst versteh ich jetzt nicht ganz. Komplizierte 
Fenster sollte man natürlich mit dem Designer machen, und dann aus den 
.ui Files die notwendigen Header erzeugen.
Zum Üben wär's aber schon sinnvoll wenn Du mal ein paar einfache Fenster 
direkt schreibst, damit Du später das Einbinden vom automatisch 
generierten Header aus dem .ui-File besser verstehst.

Der moc (Meta-Object Compiler) erzeugt zusätzliche cpp-Files, die für 
das Funktionieren von "Signals und Slots" notwendig sind. Signals und 
Slots sind eine sehr praktische Möglichkeit wie man Funktionen aufrufen 
und miteinander verbinden kann, die allerdings von der Sprache C++ nicht 
direkt unterstützt wird. Der moc muss daher die Source-Files parsen und 
zusätzlichen Code erzeugen, damit das funktioniert.


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


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


Hoffe, das hilft bissl,


Grüße!

Georg




More information about the Metalab mailing list