python GUI庫圖形介面開發之PyQt5表單佈局控制元件QFormLayout詳細使用方法與例項
阿新 • • 發佈:2020-03-09
PyQt5佈局控制元件QFormLayout簡介
QFormLayout是label-field式的表單佈局,顧明思議,就是實現表單方式的佈局,表單是提示使用者進行互動的一種模式,主要有兩列組成,第一列用於顯示資訊,給使用者提示,一般叫做label域,第二列需要使用者進行選擇或輸入,一般叫做field域,label與field的關係就是label關聯field
QFormLayout表單佈局的使用例項
import sys from PyQt5.QtWidgets import QApplication,QWidget,QFormLayout,QLineEdit,QLabel class Winform(QWidget): def __init__(self,parent=None): super(Winform,self).__init__(parent) self.setWindowTitle("窗體佈局管理例子") self.resize(400,100) fromlayout = QFormLayout() labl1 = QLabel("標籤1") lineEdit1 = QLineEdit() labl2 = QLabel("標籤2") lineEdit2 = QLineEdit() labl3 = QLabel("標籤3") lineEdit3 = QLineEdit() fromlayout.addRow(labl1,lineEdit1) fromlayout.addRow(labl2,lineEdit2) fromlayout.addRow(labl3,lineEdit3) //fromlayout->setRowWrapPolicy(QFormLayout::WrapLongRows);//該引數通常適用於小螢幕中,當標籤和文字框在本行顯示不全時,文字框會顯示在下一行,使得標籤獨佔一行 fromlayout->setLabelAlignment(Qt::AlignLeft);//設定標籤的對齊方式 self.setLayout(fromlayout) if __name__ == "__main__": app = QApplication(sys.argv) form = Winform() form.show() sys.exit(app.exec_())
執行效果示意圖
setRowWrapPolicy(RowWrapPolicy policy)函式的引數有三個可選項:
QFormLayout::DontWrapRows:該引數的含義是文字框總是出現在標籤的後面,其中標籤被賦予足夠的水平空間以適應表單中出現的最寬的標籤,其餘的空間被賦予文字框。
QFormLayout::WrapLongRows:該引數通常適用於小螢幕中,當標籤和文字框在螢幕的當前行顯示不全時,文字框會顯示在下一行,使得標籤獨佔一行。
QFormLayout::WrapAllRows:該引數表示標籤總是在文字框的上一行。
分別對應的結果如下:
QFormLayout佈局管理器巢狀
根據AddRow函式的引數來看我們在新增表單項除了可以新增Widget元件以外還可以新增其他的佈局管理器。
QFormLayout* layout = new QFormLayout();//頂級佈局管理器 QVBoxLayout* vlayout = new QVBoxLayout();//被巢狀使用的佈局管理器 QLineEdit* text1 = new QLineEdit(); QLineEdit* text2 = new QLineEdit(); QLineEdit* text3 = new QLineEdit(); vlayout->addWidget(text2);//子管理器佈局 vlayout->addWidget(text3); layout->addRow("Name:",text1);//往QFormLayout中新增表項 layout->addRow("Tel:",vlayout); layout->setSpacing(10); setLayout(layout);//設定頂級佈局管理器 this->setWindowTitle("FTP");
輸出結果為:
小結
- QFormLayout以表單的形式進行管理介面元件
- 通過使用QFormLayout可以發現其設定比較簡潔明瞭
- QFormLayout和QBoxLayout以及QGridLayout一樣都支援佈局管理器的巢狀使用
本文主要講解了PyQt5表單佈局控制元件QFormLayout詳細使用方法與例項,更多關於PyQt5佈局控制元件使用方法請檢視下面的相關連結