qformlayout管理輸入型控制項和關聯的標籤組成的那些form表單。
qformlayout是乙個方便的布局類,其中的控制項以兩列的形式被布局在表單中。左列包括標籤,右列包含輸入控制項,例如:qlineedit、qspinbox等。
我們可以通過addrow(const qstring &labeltext, qwidget *field)來建立乙個帶有給定文字的qlabel及qwidget控制項行,它們可以自動的設定為夥伴關係。
qformlayout *playout =
new qformlayout();
playout->addrow(qstringliteral("使用者名稱:"), puserlineedit);
playout->addrow(qstringliteral("密碼:"), ppasswordlineedit);
playout->addrow(qstringliteral("驗證碼:"), pverifylineedit);
playout->setspacing(10);
playout->setmargin(10);
setlayout(playout);
使用qgridlayout格柵布局編寫的比較:
qlabel *pusernamelabel =
new qlabel(this);
qlabel *ppasswordlabel =
new qlabel(this);
qlabel *pverifylabel =
new qlabel(this);
pusernamelabel->settext(qstringliteral("使用者名稱:"));
ppasswordlabel->settext(qstringliteral("密碼:"));
pverifylabel->settext(qstringliteral("驗證碼:"));
qgridlayout *playout =
new qgridlayout();
playout->addwidget(pusernamelabel, 0, 0);
playout->addwidget(puserlineedit, 0, 1);
playout->addwidget(ppasswordlabel, 1, 0);
playout->addwidget(ppasswordlineedit, 1, 1);
playout->addwidget(pverifylabel, 2, 0);
playout->addwidget(pverifylineedit, 2, 1);
playout->setspacing(10);
playout->setmargin(10);
setlayout(playout);
很顯然,功能可以實現,但是**量大了很多。
設定換行策略
控制表單行的顯示策略。內容值
描述效果
qformlayout::dontwraprows
0輸入框始終在標籤旁邊
1標籤有足夠的空間適應,如果最小大小比可用空間大,輸入框會被換到下一行
2輸入框始終在標籤下邊
qformlayout::itemrole列舉:
指定一排控制項的型別內容值
描述qformlayout::labelrole0標籤
qformlayout::fieldrole
1輸入框
qformlayout::spanningrole
2跨越標籤和輸入框的控制項
例如:
//playout->addrow(pusernamelabel, puserlineedit);
playout->setwidget(0, qformlayout::labelrole, pusernamelabel);
playout->setwidget(0, qformlayout::fieldrole, puserlineedit);
當要設計的介面是一種類似於兩列和若干行組成的形式時,使用qformlayout(表單布局)要比qgridlayout(柵格布局)更為方便些。
當介面元素較為複雜時(多行多列),應毫不猶豫的盡量使用柵格布局,而不是使用水平和垂直布局的組合或者巢狀的形式,因為在多數情況下,後者往往會使「局勢」更加複雜而難以控制。柵格布局賦予了介面設計器更大的自由度來排列組合介面元素,而僅僅帶來了微小的複雜度開銷。
Qt之表單布局(QFormLayout)
qformlayout管理輸入型控制項和關聯的標籤組成的那些form表單。qformlayout是乙個方便的布局類,其中的控制項以兩列的形式被布局在表單中。左列包括標籤,右列包含輸入控制項,例如 qlineedit qspinbox等。我們可以通過addrow const qstring label...
Qt之表單布局(QFormLayout)
qformlayout管理輸入型控制項和關聯的標籤組成的那些form表單。qformlayout是乙個方便的布局類,其中的控制項以兩列的形式被布局在表單中。左列包括標籤,右列包含輸入控制項,例如 qlineedit qspinbox等。我們可以通過addrow const qstring label...
Qt學習之表單 QTableWidget
1 建立乙個表單 qtablewidget table new qtablewidget 行數,列數,this 2 設定列寬 例如我要建立的表單為5列 table setcolumnwidth 0,180 table setcolumnwidth 1,200 table setcolumnwidth...