Qt學習,布局,多個控制項縮放時兩側對齊

2021-10-01 04:47:23 字數 1287 閱讀 3217

如上圖,不同行裡的控制項數量不一樣,如何保證控制項隨視窗放大縮小變化並保持兩側對齊呢?在qtcreator裡設計介面,不是用純**。

上圖是,先兩個平行布局,然後垂直布局。

當然,可以用格柵布局,類似實現兩側對齊;(格柵布局調節每個控制項所佔比例好像也是不太好弄)現在只討論上面布局樣式。

對於相同數量控制項的每行,隨便設定一下就能對齊。在這裡好像不能那麼隨便了。

(1)控制項間距layoutspacing要設定為0。

因為每行控制項數量不一,間距數量也就不一樣,間距總共占有寬度也就不一樣。

如果不設定為0,想放大縮小時一直保持兩邊對齊是不可能的。因為視窗放大縮小時控制項間距是不隨著放大縮小的。試想,控制項在放大縮小而間距不變,且兩行間距總和不一樣,這樣的話怎能一直對齊?!如果哪位大俠能的話可以告知。

(2)需要設定每個控制項的最小寬度,且此時也是對齊的;

如果不設定最小寬度,不斷拉長他也會齊的,因為之間的比例已經設好了,擴大的時候是按照比例擴大的;但是縮小的時候未必,因為一些控制項縮到一定大小就不縮了,有些控制項還在縮,這樣兩邊就不齊了。所以,必須按照比例設定好最小寬度,這樣擴大縮小都會齊。

當然不設定每個控制項也行,設定一下視窗的最小尺寸也可以。只要保證最小尺寸時是對齊的。

(3)怎樣設定不同數量控制項的比例,即layoutstrech

每行分的份數要一樣。比如上圖每行都分了25份,所有控制項瓜分了這25分。

layoutstrech第一行:8,1,8,8

layoutstrech第二行:8,3,2,1,3,8

每行兩邊的horizontalspacer都設定為8,保證整體控制項左右居中、兩側對齊。通過調整這個8,可以調整控制項整體在行中所佔的比例。比如都改為4,那麼控制項所佔比例大了,兩側的空白小了。

這樣,最小寬度時是對齊的,間距為0,所佔比例份數都是25,這樣縮小放大時就都能對齊了。

(4)按比例,設定控制項最小寬度

先固定乙個窗體大小,長度為x;如上圖中的,按鈕olk的寬度最小值設為x*1/25,其他的控制項也按照比例設定最小寬度。

當然,執行時,可以重新設定窗體大小xy(當然比剛才的最小時的x要大了)。

qt 中控制項保持比例縮放

最終效果 實現思路是這樣的 封裝乙個類,整合自qframe 繼承自qframe而不是qwidget是因為qframe過載了paintevent,方便進行樣式美化 在這個類中宣告乙個qwidget的成員變數,重寫派生類的這個方法 virtual void resizeevent qresizeeven...

WPF Grid布局控制項學習

30 20 30 grid.rowdefinitions grid.row 0 grid.column 0 30 30 30 30 30 grid.columndefinitions grid.column 0 content 0 grid.column 1 content 1 grid.colum...

Qt中窗體控制項按照比例縮放,自適應視窗大小進行布局

最近在做本科畢設,用到了qt,無奈本人實在是太過於小白了,很多東西都進行了很久的探索,比如今天說到的窗體控制項布局.一把辛酸淚 首先就是建立乙個gui檔案,然後進行ui設計,這裡就只需要從左邊進行拖拽,這個很easy啦.然後對其進行布局,比如右邊,右下兩個pushbutton我們可以對其進行水平布局...