Qt視窗自適應子控制項方法

2021-09-25 17:57:03 字數 593 閱讀 5213

問題描述:

qt介面存在自適應大小問題,當介面部分子控制項隱藏或者展示就會存在部分空白,需要自適應,即當子控制項隱藏時收縮覆蓋,當子控制項顯示時擴大顯示,如果只採用qboxlayout,主介面只能擴大不能縮小

解決方案:

1.採用setfixedsize + qboxlayout方式

1.1 在介面顯示(隱藏)強制重新整理

1.2 在子控制項顯示(隱藏)強制重新整理

此方法缺陷在於需要手動計算物理大小

2.採用adjustsize + qboxlayout延時重新整理方式

2.1 在介面顯示(隱藏)強制重新整理

2.2 在子控制項顯示(隱藏)強制重新整理

例項如下

//呼叫

qtimer::singleshot(0, this, slot(onupdatesize()));

//定義

void q***x::onupdatesize()

ps: 如果存在視窗初次顯示介面錯亂問題,可以參考:

Qt 自適應視窗

關於視窗布局 預設控制項的大小為最小尺寸 如果此時右鍵設定布局時,視窗大小會自動縮放對應大小,不利於調整。建議視窗控制項設定好最小尺寸,便於視窗布局時,控制項不會變形,例如 改變minimumsize,會改變sizehint控制項預設尺寸 測試於qt4 結合控制項的sizepolicy屬性,來控制布...

Qt 控制項自適應字型大小

當你的字型太大的時候需要qlable自適應調整qlable的高度,adjustsize就可以滿足此要求,其他的控制項也一樣,比如qcheckbox,qlineedit等控制自適應字型大小都可以使用adjustsize lable adjustsize 自動調整label的高度,需要注意的是這個不是一...

Qt 實現窗體控制項自適應

開啟.ui檔案 最外面grid layout grid layout裡面放hlayout 放兩個textedit和乙個vlayout發在hlayout中 在vlayout中放兩個vspace和乙個pushbutton 效果如下 將兩個textedit物件到sizepolicy屬性到水平和垂直測率設定...