1. 程式人生 > 其它 >關於Qt的QScrollArea往裡面新增多個子控制元件時,子控制元件被壓縮的問題

關於Qt的QScrollArea往裡面新增多個子控制元件時,子控制元件被壓縮的問題

技術標籤:記錄學習筆記qt

這邊的需求是動態往QScrollArea裡新增提示控制元件,結果發現新增太多後導致提示控制元件變形。
在這裡插入圖片描述
如上圖,提示控制元件已經被擠壓得看不出原型。
使用了setWidgetResizable,發現沒啥效果。QScrollArea在初始化完之後裡面的scrollAreaWidgetContents也就是裡面的Widget已經固定大小了。
最後用的方法是每次點選新增時候,重新設定QScrollArea裡面的Widget大小,也就是固定死大小。

	m_pScrollWidget->setMinimumSize(400, 100 + m_nScrollItemCount *
55); m_pScrollWidget->setMaximumSize(400, 100 + m_nScrollItemCount * 55);

或者直接Fix

m_pScrollWidget->setFixedSize(400, 100 + m_nScrollItemCount * 55);

有嘗試用過setGeometry(),但是不生效。應該是Widget是放在佈局裡,要設定最小的SIZE才能撐開佈局。
因為每次要新增進去的控制元件高度都是一樣的,所以每次重設的高度是初始高度 + 子控制元件數 * 子控制元件高度。根據需求計算高度。
在這裡插入圖片描述
如上圖,反覆點選按鈕新增提示框也不會擠壓在一塊了。

如果有更好的方法歡迎評論區指出QAQ