Mehrere QMainWindow Instanzen?
-
11-07-2019 - |
Frage
Die QMainWindow
ist das Hauptfenster in einer Qt-Anwendung. Also in der Regel würden Sie haben nur eine, aber wäre es möglich, überhaupt mehrere QMainWindow
Instanzen haben in Ihrer Anwendung?
Ich arbeite eine Qt-basierte GUI-Anwendung auf der Integration von B in einer anderen Qt-basierten GUI-Anwendung A . Beide Anwendungen haben eine QMainWindow
, und ich erwäge als erster Schritt eine neue QMainWindow
zu schaffen, die sowohl alte als QMainWindows
auf Registerkarten. Auf diese Weise es erlauben würde, mich auf die Verdrahtung der Back-End-GUI B in das Backend von A zu konzentrieren, ohne irgendetwas in der Benutzeroberfläche selbst ändern zu müssen. Ist dies ein gangbarer Weg, oder haben Sie andere Vorschläge?
Lösung
Sie können so viele QMainWindow
Instanzen, wie Sie wollen. Ein QMainWindow
ist nur ein QWidget
, die eine Menüleiste bietet, Symbolleiste, Statusleiste und Docking-Framework. Aber im Grunde ist es nur ein QWidget
so können Sie so viele, wie Sie möchten.
Normalerweise haben Sie nur eine einzige QMainWindow
aus Gründen GUI-Design, da es verwirrend sein kann mehrere Hauptfenster zu haben. Wenn jedoch Anwendungen wie QtAssistant
Implementierung, die eine neue Instanz von selbst öffnen kann dann der ein Prozess hat mehrere Hauptfenster.
Was Sie vorschlagen, funktionieren sollte. Das Fenster mit den Registerkarten benötigen würde kein QMainWindow
sein, wenn Sie auch wollen auch eine Symbolleiste zu diesem Fenster hinzufügen möchten.