QT - Cambiar el diseño de QWidget
Pregunta
Consideremos que tenemos un QWidget
y un QLayout
nombrada general_layout
Eso contiene otros widgets y diseños. general_layout
está configurado como el QWidget
Diseño como este:
setLayout(general_layout)
Ahora debería cambiar el contenido de QWidget
. ¿Cómo puedo hacer eso? He intentado eliminar y crear un nuevo diseño para el QWidget
y ese nuevo diseño establecido como un diseño del QWidget
, pero no pude completar mis intenciones con éxito.
Este es mi código:
delete general_layout;
general_layout = new QHBoxLayout;
general_layout->addLayout(some_layout);
myQWidget->setLayout(general_layout);
Solución
El problema es que los widgets de un diseño no se destruyen al eliminar un diseño. Esto da como resultado que todos los widgets infantiles de MyqWidget sigan estando presentes, ya sea sin un diseño.
La solución es simple: agregue un
qDeleteAll(myQWidget->children());
después
delete general_layout;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow