Più istanze di QMainWindow?
-
11-07-2019 - |
Domanda
Il QMainWindow
è la finestra principale in un'applicazione Qt. Quindi di solito ne avresti solo una, ma sarebbe possibile avere più istanze QMainWindow
nella tua applicazione?
Sto lavorando per integrare un'applicazione GUI basata su Qt B in un'altra applicazione GUI basata su Qt A . Entrambe queste applicazioni hanno un QMainWindow
, e stavo prendendo in considerazione come primo passo la creazione di un nuovo QMainWindow
con entrambe le vecchie QMainWindows
. In questo modo mi consentirebbe di concentrarmi sul cablaggio del backend della GUI B al backend di A senza dover modificare nulla nell'interfaccia utente stessa. È un approccio praticabile o hai altri suggerimenti?
Soluzione
Puoi avere tutte le istanze QMainWindow
che desideri. Un QMainWindow
è solo un QWidget
che fornisce una barra dei menu, una barra degli strumenti, una barra di stato e un framework di docking. Ma fondamentalmente è solo un QWidget
, quindi puoi averne quanti ne vuoi.
Normalmente hai solo un QMainWindow
per motivi di progettazione della GUI poiché può essere confuso avere più finestre principali. Tuttavia, quando si implementano applicazioni come QtAssistant
che possono aprire una nuova istanza di se stessi, l'unico processo ha più finestre principali.
Quello che suggerisci dovrebbe funzionare. La finestra con le schede non dovrebbe essere un QMainWindow
a meno che non si desideri anche aggiungere una barra degli strumenti anche a quella finestra.