[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