2009-07-19 8 views

Antwort

3

Technisch gesehen ist jedes mit NULL initialisierte Widget ein Top-Level-Widget, so dass QApplication nicht davon ausgehen sollte, dass einer von ihnen besser ist als ein anderer.
Die Art, wie ich es normalerweise mache, ist es, irgendwo einen Zeiger auf das "echte" Haupt-Widget zu speichern, sogar auf eine globale Variable oder ein Singleton, und es bei Bedarf zu referenzieren.

2

Ich denke, topLevelWidgets() ist so nah dran sein kann.

Bearbeiten:

Yup. Qt4 fügte Komplexität (und Macht) hinzu. Es gibt kein anwendungsweites MainWidget mehr. Viele QMainWindows können erstellt und angezeigt, ausgeblendet und erneut angezeigt werden. Das ist eine gute Sache, aber :) Wie shoosh bemerkt, QT3 Verhalten kann leicht mit globalen Variable (yuck!) Oder QApplication Subklasse simuliert werden.

+0

Ja, ich sah diese Methode. Aber es fühlte sich wie ein Schritt in die falsche Richtung an, da es Komplexität hinzufügt. Dies ist bisher der einzige Fall, in dem ich das Gefühl habe, dass Qt3 besser als Qt4 ist, und deshalb musste ich fragen. Ich werde die Frage ein wenig länger offen lassen, aber wenn niemand etwas besser findet, werde ich Ihre Antwort akzeptieren. Danke .. – Kristian

+0

Nun, Sie können immer "Haupt-Widget" selbst verfolgen, abhängig von Ihrer App. – Eugene

1

Ich denke, was Sie suchen, wurde durch die QMainWindow Klasse ersetzt, die Sie ein set und get ein zentrales Widget festlegen können.