Andreas Buykx
El QMainWindow
es la ventana principal de una aplicación Qt. Por lo general, solo tendría uno, pero ¿sería posible tener varios QMainWindow
instancias en su aplicación?
Estoy trabajando en la integración de una aplicación GUI basada en Qt B en otra aplicación GUI basada en Qt A. Ambas aplicaciones tienen una QMainWindow
y estaba considerando como primer paso crear un nuevo QMainWindow
que tiene los dos viejos QMainWindows
en pestañas. De esa manera, me permitiría concentrarme en conectar el backend de la GUI B al backend de A sin tener que cambiar nada en la propia interfaz de usuario. ¿Es este un enfoque viable o tiene otras sugerencias?
david dibben
Puedes tener tantos QMainWindow
instancias que desee. A QMainWindow
es solo un QWidget
que proporciona una barra de menú, una barra de herramientas, una barra de estado y un marco de acoplamiento. Pero básicamente es sólo un QWidget
para que puedas tener tantos como quieras.
Normalmente solo tienes un solo QMainWindow
por motivos de diseño de la GUI, ya que puede resultar confuso tener varias ventanas principales. Sin embargo, al implementar aplicaciones como QtAssistant
que pueden abrir una nueva instancia de sí mismos, entonces el proceso tiene múltiples ventanas principales.
Lo que sugieres debería funcionar. La ventana con las pestañas no necesitaría ser un QMainWindow
a menos que también desee agregar una barra de herramientas a esa ventana.
-
La única advertencia que agregaría es que los menús pueden volverse un poco raros si tuviera que portar a OS X. Tienen un manejo especial para que los menús funcionen en la parte superior de la pantalla, y no sé cómo eso funcionaría con dos ventanas principales en una ventana real.
– Caleb Huitt – cjhuitt
26 de noviembre de 2008 a las 15:49
-
Dado que puede tener múltiples QMainWindow en la aplicación, ¿podría usar su marco de acoplamiento dentro de una subventana Mdi? ¿Sería una buena práctica?
– Anónimo
19 de marzo de 2012 a las 13:52
-
@Anónimo: ¡buena idea!
– CapelliC
02/08/2014 a las 15:31
-
¿Cómo aparecen estas sub-QMainWindow(s) en la ventana principal de la aplicación? Cómo se organizan: como las ventanas MDI, se superponen entre sí o es necesario colocarlos en algún contenedor como un widget de pestaña o un widget apilado, o son independientes, ¿cómo? PD Encontré la respuesta aquí: stackoverflow.com/a/11860378/630169 y aquí foro.qt.io/topic/31841/…necesita usar ventana->setWindowFlags(Qt::Widget);
– Aleksey Kontsevich
29 de marzo de 2016 a las 1:08
Estoy en una situación bastante similar, donde necesito 2 QMainWindows. En caso de que haya tomado esta ruta, ¿tiene una respuesta a la advertencia señalada por @ caleb-huitt-cjhuitt, eso es lo que sucede con la barra de menú en una Mac?
– SB
5 de agosto de 2011 a las 5:25