QT:自適應佈局

拉入三個widget,左邊放入button和treeView,中間放入LineEdit和ListView,右邊放入TextEdit,三個都設置爲垂直佈局。

 

此時控件不能隨窗口自適應。

 

窗口自適應佈局

接下來對整個窗口進行水平佈局,可實現控件隨窗口大小自適應。

但存在的問題是三欄不能各自調整大小,這時需要另外一種佈局管理器QSplitter。

 

控件單獨調整大小

先打破窗口的水平佈局。

按住ctrl鍵選擇三個widget。

右鍵選擇分裂器水平佈局。

此時可以分別調整三個widget的大小,最後爲窗口應用水平佈局(或垂直佈局),則控件既能自適應窗口大小,也能分別調整。

 

某一控件單獨實現自適應窗口

但是如果想在控件自適應大小的時候只改變其中一個控件的大小呢?

去掉分裂器佈局。

然後通過修改伸展參數(水平佈局修改水平伸展,垂直佈局修改垂直伸展),可以通過修改兩個地方達到同樣的效果。

1. 修改父控件佈局參數LayoutStretch,這個是控制一個佈局中子控的拉伸比例,例如當設置爲1,2,3時,則三個控件的寬度始終保持1:2:3。特別地,如果將某比例設置爲0,則該控件在寬度拉伸到一定程度有不再拉伸。

  

2. 設置子控件的SizePoliby參數

 

可以達到相同的效果。

但即使是這樣,設置爲0的控件還是有一定程度的拉伸,如何始終保持絕對的寬度呢?

只需要將該控件的minimunSize和maxinumSize設置爲相同的值就可以了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章