Wie kann ich ein Qt-Widget unsichtbar machen, ohne die Position der anderen Qt-Widgets zu ändern?

Ich habe ein Fenster voller QPushButtons und QLabels und verschiedener anderer lustiger QWidgets, die alle mit verschiedenen dynamisch angeordnet sindQLayout Objekte ... und ich möchte gelegentlich einige dieser Widgets unsichtbar machen. Das heißt, die unsichtbaren Widgets würden im Layout des Fensters immer noch ihren normalen Platz einnehmen, aber nicht gerendert. Stattdessen würde der Benutzer nur die Hintergrundfarbe des Fensters im Rechteck / Bereich des Widgets sehen.

hide() und / odersetVisible(false) Dies reicht nicht aus, da das Widget vollständig aus dem Layout entfernt wird und andere Widgets den "neu verfügbaren" Speicherplatz belegen. Ein Effekt, den ich vermeiden möchte.

Ich nehme an, ich könnte aus jedem eine Unterklasse machenQWidget Tippen Sie diesen OverridepaintEvent() (undmousePressEvent() und etc), um ein No-Op zu sein (falls zutreffend), aber ich würde eine Lösung vorziehen, bei der ich nicht drei Dutzend verschiedene erstellen mussQWidget Unterklassen.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage