2017-10-18 87 views
0

我有一個網格佈局,其上有4個組框。當我嘗試使用groupBox->hide()隱藏其中一個QGroupBox時,組框不再可見。但空間保留在佈局中(我是而不是使用QSizePolicy來保留空間)移除刪除qt小部件的空間

如何確保剩餘的小部件自動使用空間?

enter image description here

在圖片中,我已經隱藏 '2組'。我希望第3組自動填充空間。我該怎麼做呢?

+0

您希望組3移動到最高位置,但在此之前有兩種情況,第一種是更新小部件的大小,第二種是留出空間。你想要哪一個? – eyllanesc

+0

@eyllanesc我想更新小部件的大小(不留任何空間) – akashrajkn

+0

你使用setAlignment(Qt :: AlignTop); –

回答

0

爲了使佈局達到您想要的效果,其子部件必須「正確」運行。 也就是說如果其中一個組框包含垂直間隔符,則可能會弄亂您的佈局。

我發現一個樣式表設置爲頂層窗口小部件調試佈局問題幫助:

pWidget->setStyleSheet("border: 1px solid red;"); 

這將周圍畫一個紅色邊框(一些)小部件和澄清誰使用它的空間。

您可以嘗試在第三個組框的下方添加一個垂直間隔器,以將它們向上「推」。如果其中一個組框被設置爲不可見,則其他組應該被推高並且組框1和3之間的空間應該消失。