問題描述:
Qt界面存在自適應大小問題,當界面部分子控件隱藏或者展示就會存在部分空白,需要自適應,即當子控件隱藏時收縮覆蓋,當子控件顯示時擴大顯示,如果只採用QBoxLayout,主界面只能擴大不能縮小
解決方案:
1.採用setFixedSize + QBoxLayout方式
1.1 在界面顯示(隱藏)前強制刷新
1.2 在子控件顯示(隱藏)後強制刷新
此方法缺陷在於需要手動計算物理大小
2.採用adjustSize + QBoxLayout延時刷新方式
2.1 在界面顯示(隱藏)前強制刷新
2.2 在子控件顯示(隱藏)後強制刷新
實例如下
//調用
QTimer::singleShot(0, this, SLOT(onUpdateSize()));
//定義
void QXXXX::onUpdateSize()
{
//自適應,如果存在子控件可以遍歷children自適應
adjustSize();
}
ps: 如果存在窗口初次顯示界面錯亂問題,可以參考:https://blog.csdn.net/u014789012/article/details/86677249