不用Designer设计界面,纯手写代码的话,怎样直接用GridLayout设计下面这样的布局? 我的问题主要是图中label_6和label_7怎样居中?
label_6
label_7
P.S. 我知道可以先用水平布局再用垂直布局,但是能否直接用GridLayout做出来? 另外:
setRowStretch(int row, int stretch) setColumnStretch(int column, int stretch)
这两个函数的意思是什么?我试了一下也没看出个所以然来……
setRowStretch 是設定該行行高所佔總行高的比例。 舉例來說,現在有一個4行的gridlayout,你想讓他們的行高比為1:3:5:7,則這樣設定:
setRowStretch(0, 1); setRowStretch(1, 3); setRowStretch(2, 5); setRowStretch(3, 7);
setColumnStretch是設定列寬的。
要實現居中,我一般會在控件左右兩邊加上兩個彈簧控件,也就是QSpacerItem; 如果單純用gridlayout來實現如圖這種佈局,我暫時沒有好的辦法,我通常的做法是使用表格佈局,在需要居中的那一行先放一個水平佈局,然後在水平佈局裡面放入需要的控件,並控制居中。
setRowStretch 是設定該行行高所佔總行高的比例。
舉例來說,現在有一個4行的gridlayout,你想讓他們的行高比為1:3:5:7,則這樣設定:
setColumnStretch是設定列寬的。
要實現居中,我一般會在控件左右兩邊加上兩個彈簧控件,也就是QSpacerItem;
如果單純用gridlayout來實現如圖這種佈局,我暫時沒有好的辦法,我通常的做法是使用表格佈局,在需要居中的那一行先放一個水平佈局,然後在水平佈局裡面放入需要的控件,並控制居中。