Как сделать виджет Qt невидимым без изменения положения других виджетов Qt?

У меня есть окно, полное QPushButtons и QLabels и различных других забавных QWidgets, все выложены динамически с использованием различныхQLayout объекты ... и то, что я хотел бы сделать, - иногда сделать некоторые из этих виджетов невидимыми. То есть невидимые виджеты по-прежнему занимают свое обычное пространство в макете окна, но они не будут отображаться: вместо этого пользователь просто увидит цвет фона окна в прямоугольнике / области виджета.

hide() и / илиsetVisible(false) не справится с задачей, потому что они приводят к тому, что виджет полностью удаляется из макета, что позволяет другим виджетам расширяться, чтобы занять «вновь доступный» виджет; пространство; эффект, которого я хочу избежать.

Я полагаю, я мог бы сделать подкласс каждогоQWidget введите, что переопределитьpaintEvent() (а такжеmousePressEvent() и т. д.) быть неоперативным (когда это уместно), но я бы предпочел решение, которое не требует от меня создания трех десятков различныхQWidget подклассы.

Ответы на вопрос(10)

Ваш ответ на вопрос