¿Cómo hacer que un widget Qt sea invisible sin cambiar la posición de los otros widgets Qt?

Tengo una ventana llena de QPushButtons y QLabels y varios otros QWidgets divertidos, todos dispuestos de forma dinámica utilizando variosQLayout Los objetos ... y lo que me gustaría hacer es ocasionalmente hacer que algunos de esos widgets se vuelvan invisibles. Es decir, los widgets invisibles aún ocuparían su espacio normal en el diseño de la ventana, pero no serían renderizados: en su lugar, el usuario solo vería el color de fondo de la ventana en el rectángulo / área del widget.

hide() y / osetVisible(false) no hará el truco porque hacen que el widget se elimine por completo del diseño, lo que permite que otros widgets se expandan para ocupar el espacio "recién disponible"; Un efecto que quiero evitar.

Supongo que podría hacer una subclase de cadaQWidget escriba que anularpaintEvent() (ymousePressEvent() y etc) para ser un no-op (cuando sea apropiado), pero preferiría una solución que no requiera que cree tres docenas diferentesQWidget subclases

Respuestas a la pregunta(10)

Su respuesta a la pregunta