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.