2011-05-23 59 views
4

我的問題可能很簡單,但我不知道如何解決它。如何讓Qt小部件改變其大小?

因此,我有幾個垂直佈局的小部件。有些時候應該是隱形的。我認爲這一時刻,擴大垂直政策的控制力應該增加其高度,但從未發生。爲什麼?如何強制它改變大小?到目前爲止,只有一種方法可以實現 - 手動更改窗口的大小,並且只有在窗口小部件更改高度後才能更改窗口的大小。

回答

3

當您使小部件不可見(即調用hide)時,也可以從佈局中將其刪除(請參閱removeWidget)。這樣,所有其他小部件將自動調整大小以利用額外的空間。由於您只隱藏小部件,因此其空間仍保留在垂直佈局中。

利用insertWidget可以在將隱藏小部件轉換回視圖時維持佈局排序。否則,addWidget將始終將其置於底部。這種方法應該不如手動管理尺寸那麼複雜。

+0

我試過這種方式,但它仍然不起作用。小部件消失,但另一個小部件不能延伸。 (謝謝) – mimic 2011-05-23 06:03:03

1

嘗試在佈局的父級上調用adjustSize()

+0

試過了,不起作用,無論如何感謝 – mimic 2011-05-24 03:20:45

0

您是否嘗試過在其他人隱藏的時候爲其想要展開的小部件設置1?

QBoxLayout::addWidget(my_widget, 1); 

當這個小部件增加了一段1和其他小部件沒有拉伸時,這個小部件將擴展到可用空間。也許這會做到這一點。

+0

很抱歉,我沒有添加這樣的小部件,在佈局中的小部件總是有擴展策略,但是當我刪除另一個時首選政策)。無論如何,謝謝 – mimic 2011-05-24 03:20:07