Jak sprawić, aby widget Qt był niewidoczny bez zmiany pozycji innych widżetów Qt?

Mam okno pełne QPushButtons i QLabels oraz wiele innych zabawnych QWidgetów, wszystkie ułożone dynamicznie przy użyciu różnychQLayout obiekty ... i to, co chciałbym zrobić, to czasami sprawić, że niektóre z tych widżetów staną się niewidoczne. Oznacza to, że niewidoczne widgety nadal zajmowałyby normalne miejsce w układzie okna, ale nie byłyby renderowane: zamiast tego użytkownik zobaczyłby kolor tła okna w prostokącie / obszarze widżetu.

hide() i / lubsetVisible(false) nie załatwi sprawy, ponieważ powodują całkowite usunięcie widżetu z układu, dzięki czemu inne widżety mogą się rozwinąć, aby zajmować „nowo dostępne” miejsce; efekt, którego chcę uniknąć.

Przypuszczam, że mógłbym stworzyć podklasę każdegoQWidget wpisz to nadpisaniepaintEvent() (imousePressEvent() i itp.) być no-op (jeśli to stosowne), ale wolałbym rozwiązanie, które nie wymaga ode mnie tworzenia trzech tuzinów różnychQWidget podklasy.

questionAnswers(10)

yourAnswerToTheQuestion