2012-11-16 64 views
0

所以我有一個包含一個QGridLayout的對話框,它有兩列小部件(標籤和組合框)。根據組合框的選擇,某些行可能被隱藏。如何擺脫Qt中QGridLayout中空行的垂直間距?

我想通過對話框調用self.layout().setSizeConstraint(QLayout.SetFixedSize),因爲它顯示/隱藏組合框會使對話框相應地改變大小。

但後來我意識到,佈局仍然顯示空行的垂直間距,從而使對話顯示太多的空間在這裏和那裏。

我該如何擺脫這個?有沒有辦法讓佈局調整大小,只顯示具有可見小部件的行的垂直間距?

回答

0

您可能需要使用QLayout::takeAt (int index)取出物品,一旦當你需要它放回你的佈局可見性設置爲false &使用QLayout::addItem (QLayoutItem * item)

請記住,如果一個項目被刪除,其他項目將被重新編號。所以你必須計劃你做了什麼。請參閱documentation

0

我想我找到了解決方案。使用QVBoxLayout而不是QGridLayout以某種方式使小部件的垂直間距在隱藏小部件時消失。