Como tornar um widget Qt invisível sem alterar a posição dos outros widgets do Qt?

Eu tenho uma janela cheia de QPushButtons e QLabels e vários outros QWidgets divertidos, todos dispostos dinamicamente usando váriosQLayout objetos ... e o que eu gostaria de fazer é ocasionalmente fazer alguns desses widgets se tornarem invisíveis. Ou seja, os widgets invisíveis ainda ocupariam seu espaço normal no layout da janela, mas não seriam renderizados: em vez disso, o usuário apenas veria a cor do plano de fundo da janela no retângulo / área do widget.

hide() e / ousetVisible(false) não fará o truque porque eles fazem com que o widget seja removido do layout completamente, permitindo que outros widgets se expandam para ocupar o espaço "recém-disponível"; um efeito que eu quero evitar.

Eu suponho que eu poderia fazer uma subclasse de cadaQWidget digite esse overridepaintEvent() (emousePressEvent() e etc) para ser um não-op (quando apropriado), mas eu prefiro uma solução que não me obrigue a criar três dúzias deQWidget subclasses.

questionAnswers(10)

yourAnswerToTheQuestion