2012-02-02 79 views
4

我試圖實現一個由一堆子元素組成的UI元素。他們可以像父母那樣增長或縮小。很簡單QLayout的東西。但是,當父母變得太小時,它隱藏了一些子元素(這意味着現在剩下的元素有更多空間,並且它們會變大一點)。QLayout可以隱藏而不是調整QWidgets的大小嗎?

我沒有看到任何方式的任何標準QLayout s處理此。我想你可以將孩子的小部件視爲優先級,而低優先級的部件則隱藏起來。

佈局嚴格水平,所以與工具欄模糊不清,除了無法獲取隱藏物品。 (而且子元素不是行爲,就像它們在QToolBar中一樣)。

回答

0

看看QStackedWidget。我自己開始使用它們。

他們有被調用時顯示/隱藏的「頁面」。例如:

ui.stackedWidget->setCurrentIndex(0);

例如,當索引0表示,頁面1,2,3 ...被下方隱藏。

我已經連接到一堆單選按鈕,單擊時顯示相應的頁面/小部件,並隱藏其他人的'下方'。連接很簡單:

connect(button_group_ptr, SIGNAL(buttonClicked(int)), ui.stackedWidget, SLOT(setCurrentIndex(int))); 
connect(ui.stackedWidget, SIGNAL(currentChanged(int)), this, SLOT(stackedWidgetChanged(int))); 
+0

我不認爲這是一回事 - 想法是隱藏小部件取決於容器的大小。 – 2012-02-02 21:11:02

相關問題