Estoy creando una aplicación utilizando Qt que consiste en un widget que se utiliza como fondo de la aplicación y una interfaz de control de usuario que flota arriba.Cómo widgets independientes de capa en Qt?
Un ejemplo similar es google maps, donde el mapa está en el fondo y los controles están en la parte superior del fondo.
Pero la cosa es que el widget de fondo se puede cambiar a un widget diferente (hay un widget que muestra un mapa, otro widget que muestra imágenes de vídeo, ...)
Y lo mismo sucede para el botones en la interfaz de control de usuario, no están directamente relacionados con el fondo actual y se pueden cambiar dinámicamente.
He intentado usar QStackedLayout, utilizando dos capas, el widget de fondo y la interfaz de control del usuario. Pero no puede interactuar con la capa de fondo porque todos los clics están bloqueados por el widget en el frente.
¿Alguna sugerencia?
Ese es el enfoque que he seguido, me han agrupado todos los controles en un solo flash, que los contiene con los diseños apropiados. Pero el problema es que, incluso si hay algunos widgets dispersos en la pantalla, este Widget de control ocupa toda la pantalla y bloquea los eventos del mouse. Otra cosa que creo que podría resolver este problema es agregar los controles uno por uno como capas separadas en el widget apilado. De esta manera, solo bloquearán los clics del mouse que están en ellos. – Victor
¿Estás seguro de que estás agregando todos tus widgets como elementos secundarios de este widget de control/fondo? Asegúrese de que sus constructores de widgets personalizados estén llamando al constructor predeterminado de QWidget y que esté configurando el widget de titular (probablemente el fondo) como el padre de todos sus widgets durante la inicialización de la GUI. –
El problema parece ser el que se discute aquí: http://www.qtcentre.org/threads/45844-Mouse-events-with-StackAll-QStackedLayout Dado que estoy usando un apilado Layout con dos widgets (el fondo y el widget de control), el widget de control, que está en la parte superior, está bloqueando todos los eventos de clic del mouse. Voy a intentar configurar el widget de control como elementos secundarios del fondo, en lugar de que sean hermanos. – Victor