Ich portiere eine Anwendung von Qt3 nach Qt4 und benötige eine Qt4-Ersetzung für QApplication :: mainWidget(), die verwendet wurde, um das Top-Level-Widget in Qt3 zurückzugeben. Kann jemand das in Qt4 machen?Was wurde QWidget * QApplication :: mainWidget() in Qt4?
Antwort
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.
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.
Ich denke, was Sie suchen, wurde durch die QMainWindow Klasse ersetzt, die Sie ein set und get ein zentrales Widget festlegen können.
- 1. QWidget: Muss eine QApplication vor einem QPaintDevice-Python erstellen
- 2. QApplication in Nicht-Haupt-Thread
- 3. Wie sind die Objekte QApplication() und QWidget() in PySide/PyQt verbunden?
- 4. Drag & Drop QWidget in Maya
- 5. BitBlt in Qt4?
- 6. QWidget: Muss ein QApplication vor einem QPaintDevice in VS Release-Modus
- 7. Destruktoren in Qt4
- 8. Aufruf von quit() Methode von QApplication
- 9. Warnung unterdrücken "QApplication wurde nicht im main() -Thread erstellt"
- 10. URL kodieren in Qt4
- 11. Wie setze ich QWidget Hintergrundfarbe?
- 12. Einfache Interprozesskommunikation in Qt4
- 13. Einbetten von QWidget in X11-Fenster
- 14. QT4 Drag-Fenster ohne Titelleiste
- 15. Crosscompiling Qt4: uic segfaults
- 16. overriding qt4 kompilieren Zeiteinstellungen
- 17. Qt unter Mac OS - Erkennen eines Klicks auf das Dock-Menü
- 18. Breite/Länge Qt4 Widget?
- 19. Implementierung von keyPressEvent in QWidget
- 20. Wie starte ich eine QApplication?
- 21. Ruby und Qt4: no `rbuic`
- 22. QT4 QFileSystemWatcher mit Ruby
- 23. zeichnen Sie Diagramm in Qwidget
- 24. cmake nicht finden Qt4
- 25. QWidget- und xvimagesink-Problem!
- 26. Qt-Raum um QWidget
- 27. Qt4 QMenu Artikel sortieren
- 28. QWidget Hintergrund transparent
- 29. Wie bekomme ich ein Stylesheet-Änderungsereignis in einem QWidget?
- 30. Was ist der Unterschied zwischen einem QWindow und QWidget
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
Nun, Sie können immer "Haupt-Widget" selbst verfolgen, abhängig von Ihrer App. – Eugene