Plusieurs instances de QMainWindow?
-
11-07-2019 - |
Question
Le QMainWindow
est la fenêtre principale d'une application Qt. Donc, en général, vous n’en avez qu’une, mais serait-il possible d’avoir plusieurs instances QMainWindow
dans votre application?
Je travaille sur l'intégration d'une application graphique basée sur Qt B dans une autre application graphique basée sur Qt A . Ces deux applications ont un QMainWindow
et je envisageais dans un premier temps de créer un nouveau QMainWindow
comportant les deux anciens QMainWindows
dans les onglets. Ainsi, cela me permettrait de me concentrer sur le câblage du backend de l'interface graphique B vers le backend de A sans rien changer à l'interface utilisateur elle-même. Est-ce une approche viable ou avez-vous d'autres suggestions?
La solution
Vous pouvez avoir autant d'instances QMainWindow
que vous le souhaitez. Un QMainWindow
est simplement un QWidget
qui fournit une barre de menus, une barre d'outils, une barre d'état et un cadre d'ancrage. Mais fondamentalement, il s’agit simplement d’un QWidget
afin que vous puissiez en avoir autant que vous le souhaitez.
Normalement, vous n’avez qu’un seul QMainWindow
pour des raisons de conception graphique car il peut être déroutant d’avoir plusieurs fenêtres principales. Toutefois, lors de la mise en œuvre d’applications telles que QtAssistant
, qui peuvent ouvrir une nouvelle instance d’elles-mêmes, le processus en question comporte plusieurs fenêtres principales.
Ce que vous suggérez devrait fonctionner. La fenêtre avec les onglets ne doit pas nécessairement être QMainWindow
, sauf si vous souhaitez également ajouter une barre d'outils à cette fenêtre.