Pregunta

En PyQt 4.5, tengo un diseño dentro de otro diseño. Me gustaría quitar el sublayout de su padre, y esconderlo. Puedo decir parent_layout.removeItem(child_layout) para eliminar la disposición de su padre, pero aún muestra en el widget. No puedo encontrar ninguna manera de ocultarlo en un solo paso, como QLayout no tiene un método hide() como QWidget hace.

¿Fue útil?

Solución

La solución más sencilla sería tener un widget de interior, no una disposición interior. Podría asignar el diseño que desea el widget, entonces sólo eliminar / ocultar el widget cuando desee hacerlo. Una buena regla general es que si lo que desea es concertar widgets aparecen, a continuación, utilizar un diseño; Si desea ocultar / mostrar como un grupo, use un widget.

Otros consejos

Con la ayuda de Flupke en #qt, se me ocurrió:

for i in range(0, child_layout.count()):
  child_layout.itemAt(i).widget().hide()
parent_layout.removeItem(child_layout)

que asume todos los niños del diseño de los niños son los widgets. ¿Hay una solución más simple?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top