Найти высоту Qwidget перед вставкой

У меня есть виджет для вставки, который выглядит как этот

+--------------------+
| +-------++-------+ |
| |       ||       | |
| |       ||       | |
| |       || Label | |
| | Label || Label | |
| |       ||       | |
| |       ||       | |
| +-------++-------+ |
+--------------------+

элемент Qwidget, содержащий два QVBoxLayouts, каждый из которых содержит один или несколько QLabels.
Этот виджет будет вставлен в вертикальный макет, который имеет растяжку, поэтому все виджеты такого рода будут переходить на вершину и сжиматься на более мелкую возможную высоту.

В результате чего-то вроде этого.

______________________ ← Layout boundary
+--------------------+
| +-------++-------+ |
| |       || Label | |
| | Label || Label | | ← Widget shrunk to the smallest
| +-------++-------+ |
+--------------------+
______________________ ← Layout boundary
          ↑
          |
          | ← Spacer
          |
          ↓
______________________ ← Layout boundary

Но прежде чем делать эту вставку, я хочу знать размер, который виджет будет в вставленной макете. Может быть, минимальный размер, разрешенный его внутренним макетом. Не уверен, как это позвонить.

Я пробовал уже много подходов, таких как вставка виджета в альтернативной невидимой макете, чтобы я мог получить его высоту при вставлении, что должно быть то же самое, что виджет примет при введении в мою окончательную макет.

Но по какой-то причине я всегда получаю 480 или 478, когда виджет находится на большинстве высоты 50px при нажатии вертикально. Так что я полностью потерян.

Я должен сделать это, потому что мне нужен виджет, чтобы анимировать при вставке, и мне нужно знать высоту, которая займет меня, чтобы анимировать с высоты 1.

Как я могу сделать это?

8
задан WendiKidd 8 August 2012 в 02:52
поделиться