Qt開發從青銅都王者 自動布局

2021-10-06 22:08:56 字數 952 閱讀 1904

使用qt進行各種控制項進行布局時,我們往往會用到qt的各種自動布局類,對比將控制項固定在某一固定座標,自動布局的好處是控制項可以根據介面的大小按照比例進行自動調整,達到「自適應」的效果。

qt中常用的布局有qvboxlayout(垂直布局)、qhboxlayout(水平布局)、qgridlayout(網格布局)。

qvboxlayout、qhboxlayout使用addwidget可以新增其繼承自qwidget的控制項,也可使用addlayout新增其他布局當做乙個盒子使用,常用介面見下**。

qwidget *w = new qwidget();

qvboxlayout *layout = new qvboxlayout();

for(int i =0;i<5;i++)

//四個引數分別為左、上、右、下的距離邊框的距離,單位畫素

layout->setcontentsmargins(20,30,40,50);

w->setlayout(layout);

下面我們看一下效果

這兩種布局方式除了能新增指定畫素的距離之外,還能新增彈簧(addstretch),動態的改變控制項之間的距離,下面我們在按鈕之中新增彈簧看一下效果,這個引數可以理解為彈簧的勁度係數(個人理解),使用demo時拉大視窗,彈簧的效果就能被看到了:

相比前兩個layout,qgridlayout可以進行每個單元格佔幾行幾列的設定,見下

送上layout教程demo鏈結

UnityShader從青銅到王者 黃金階段

建乙個unlitshader看 shader unlit myunlitshader subshader lod 100 pass struct v2f sampler2d maintex float4 maintex st fixed4 frag v2f i sv target endcg 階段有...

QT開發日記

1,在使用moc的時候,q object這個巨集不能用在乙個類的定義檔案中,只能在單獨作為乙個類的宣告檔案中用,否則會出現 vtable for x 類名 的出錯提示。如果乙個類只宣告了,而沒有定義,也會出現上述錯誤.這時可以在這個檔案的末尾加上 include moc xx為不要.cpp字尾的檔名...

qt開發雜談

1 qt中訊號和槽有一種自動連線方式 void on 如果槽的命名是這樣的話 void on 就會自動將widget name中的訊號signal name和這個槽void on 鏈結起來。例如 void on okbutton clicked 系統就會自動將okbutton類中的訊號clicked...