多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Qt之表單布局(QFormLayout)

Qt之表單布局(QFormLayout)

來源:程序員人生   發布時間:2016-06-07 17:39:20 閱讀次數:6836次

簡述

QFormLayout管理輸入型控件和關聯的標簽組成的那些Form表單。

QFormLayout是1個方便的布局類,其中的控件以兩列的情勢被布局在表單中。左列包括標簽,右列包括輸入控件,例如:QLineEdit、QSpinBox等。

  • 簡述
  • 使用
  • 經常使用接口
  • 總結

使用

我們可以通過addRow(const QString &labelText, QWidget *field)來創建1個帶有給定文本的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);

很明顯,功能可以實現,但是代碼量大了很多。

經常使用接口

  • setRowWrapPolicy(RowWrapPolicy policy)

    設置換行策略

QFormLayout::RowWrapPolicy枚舉:

控制表單行的顯示策略。

內容 描寫 效果
QFormLayout::DontWrapRows 0 輸入框始終在標簽旁邊 這里寫圖片描述
QFormLayout::WrapLongRows 1 標簽有足夠的空間適應,如果最小大小比可用空間大,輸入框會被換到下1行 這里寫圖片描述
QFormLayout::WrapAllRows 2 輸入框始終在標簽下邊 這里寫圖片描述

  • setWidget(int row, ItemRole role, QWidget *widget)

    設置行row所對應的控件,如果role為LabelRole時,設置的為標簽所對應的控件,如果role為FieldRole時,設置的為輸入框所對應的控件。

QFormLayout::ItemRole枚舉:

指定1排控件的類型

內容 描寫
QFormLayout::LabelRole 0 標簽
QFormLayout::FieldRole 1 輸入框
QFormLayout::SpanningRole 2 逾越標簽和輸入框的控件

例如:

//pLayout->addRow(pUserNameLabel, pUserLineEdit); pLayout->setWidget(0, QFormLayout::LabelRole, pUserNameLabel); pLayout->setWidget(0, QFormLayout::FieldRole, pUserLineEdit);

  • setSpacing(int spacing)
  • setHorizontalSpacing(int spacing)
  • setVerticalSpacing(int spacing)

    設置間距(水平間距、垂直間距)


  • QWidget * QFormLayout::labelForField(QWidget * field)

    通過field獲得field對應的標簽,這里不1定是QLabel,返回值為QWidget。

總結

當要設計的界面是1種類似于兩列和若干行組成的情勢時,使用QFormLayout(表單布局)要比QGridLayout(柵格布局)更加方便些。

當界面元素較為復雜時(多行多列),應絕不猶豫的盡可能使用柵格布局,而不是使用水平和垂直布局的組合或嵌套的情勢,由于在多數情況下,后者常常會使“局勢”更加復雜而難以控制。柵格布局賦予了界面設計器更大的自由度來排列組合界面元素,而僅僅帶來了微小的復雜度開消。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: jizz亚洲日本jizz | 久久在线综合 | 国产主播福利一区二区 | 加勒比精品久久一区二区三区 | 2018年成人精品 | 欧美一级特黄毛片免费 | 精品999视频| 成片免费观看视频在线网 | 日韩一级精品视频在线观看 | 一区二区三区四区在线视频 | 欧美xart系列高清在线视频 | 九色91精品国产网站 | 午夜精品久久久久久中宇 | 91真人毛片一级在线播放 | yellow影院在线观看免费 | 最近中文字幕免费大全8高清 | 99热精品成人免费观看 | 日韩福利在线视频 | 校园春色亚洲欧美 | 亚洲激情小视频 | 免费看叼嘿视频 | 亚洲欧美日韩网站 | 午夜影院小视频 | 久久机热这里只有精品 | 欧美性猛交xxxx免费 | 香蕉在线精品视频在线观看2 | 精品一区二区三区免费视频 | 华人色| 91精品久久久久久久久网影视 | 国产精品任我爽爆在线播放66 | 精品国产一区二区三区四区不 | 欧美日本韩国 | 国产永久免费高清在线观看视频 | 亚洲精品不卡午夜精品 | xxxxxxx国产精品视频 | 欧美另类69xxxxx极品 | 日韩一区二区在线视频 | 在线视频黄 | 亚洲精品久久久久久久久久久网站 | 免费看成人国产一区二区三区 | 一国产一级淫片a免费播放口 |