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);
¿Fue útil?

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
scroll top