python GUI庫圖形界面開發(fā)之PyQt5表單布局控件QFormLayout詳細(xì)使用方法與實例
PyQt5布局控件QFormLayout簡介
QFormLayout是label-field式的表單布局,顧明思議,就是實現(xiàn)表單方式的布局,表單是提示用戶進(jìn)行交互的一種模式,主要有兩列組成,第一列用于顯示信息,給用戶提示,一般叫做label域,第二列需要用戶進(jìn)行選擇或輸入,一般叫做field域,label與field的關(guān)系就是label關(guān)聯(lián)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("標(biāo)簽1")
lineEdit1 = QLineEdit()
labl2 = QLabel("標(biāo)簽2")
lineEdit2 = QLineEdit()
labl3 = QLabel("標(biāo)簽3")
lineEdit3 = QLineEdit()
fromlayout.addRow(labl1, lineEdit1)
fromlayout.addRow(labl2, lineEdit2)
fromlayout.addRow(labl3, lineEdit3)
//fromlayout->setRowWrapPolicy(QFormLayout::WrapLongRows);//該參數(shù)通常適用于小屏幕中,當(dāng)標(biāo)簽和文本框在本行顯示不全時,文本框會顯示在下一行,使得標(biāo)簽獨(dú)占一行
fromlayout->setLabelAlignment(Qt::AlignLeft);//設(shè)置標(biāo)簽的對齊方式
self.setLayout(fromlayout)
if __name__ == "__main__":
app = QApplication(sys.argv)
form = Winform()
form.show()
sys.exit(app.exec_())
運(yùn)行效果示意圖

setRowWrapPolicy(RowWrapPolicy policy)函數(shù)的參數(shù)有三個可選項:
QFormLayout::DontWrapRows:該參數(shù)的含義是文本框總是出現(xiàn)在標(biāo)簽的后面,其中標(biāo)簽被賦予足夠的水平空間以適應(yīng)表單中出現(xiàn)的最寬的標(biāo)簽,其余的空間被賦予文本框。
QFormLayout::WrapLongRows:該參數(shù)通常適用于小屏幕中,當(dāng)標(biāo)簽和文本框在屏幕的當(dāng)前行顯示不全時,文本框會顯示在下一行,使得標(biāo)簽獨(dú)占一行。
QFormLayout::WrapAllRows:該參數(shù)表示標(biāo)簽總是在文本框的上一行。
分別對應(yīng)的結(jié)果如下:



QFormLayout布局管理器嵌套
根據(jù)AddRow函數(shù)的參數(shù)來看我們在添加表單項除了可以添加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);//設(shè)置頂級布局管理器
this->setWindowTitle("FTP");
輸出結(jié)果為:

小結(jié)
- QFormLayout以表單的形式進(jìn)行管理界面組件
- 通過使用QFormLayout可以發(fā)現(xiàn)其設(shè)置比較簡潔明了
- QFormLayout和QBoxLayout以及QGridLayout一樣都支持布局管理器的嵌套使用
本文主要講解了PyQt5表單布局控件QFormLayout詳細(xì)使用方法與實例,更多關(guān)于PyQt5布局控件使用方法請查看下面的相關(guān)鏈接
相關(guān)文章
python使用tkinter打造三維繪圖系統(tǒng)的示例代碼
Python?的?tkinter?模塊是一個常用的?GUI(圖形用戶界面)工具包,它能夠讓你創(chuàng)建窗口應(yīng)用程序,你可以使用它來構(gòu)建用戶友好的界面,包括按鈕、標(biāo)簽、文本框、列表框等各種控件,本文講給大家介紹如何使用tkinter打造三維繪圖系統(tǒng),需要的朋友可以參考下2023-08-08
python數(shù)據(jù)處理——對pandas進(jìn)行數(shù)據(jù)變頻或插值實例
這篇文章主要介紹了python數(shù)據(jù)處理——對pandas進(jìn)行數(shù)據(jù)變頻或插值實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
使用Python實現(xiàn)批量訪問URL并解析XML響應(yīng)功能
在現(xiàn)代Web開發(fā)和數(shù)據(jù)抓取中,批量訪問URL并解析響應(yīng)內(nèi)容是一個常見的需求,本文將詳細(xì)介紹如何使用Python實現(xiàn)批量訪問URL并解析XML響應(yīng)功能,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2025-01-01
Python延時變量和free_list鏈表的區(qū)別詳解
延時變量指Python閉包中變量在調(diào)用時而非定義時綁定值,可通過默認(rèn)參數(shù)強(qiáng)制提前綁定,這篇文章主要介紹了Python延時變量和free_list鏈表區(qū)別的相關(guān)資料,需要的朋友可以參考下2026-01-01
Python中的遠(yuǎn)程調(diào)試與性能優(yōu)化技巧分享
Python 是一種簡單易學(xué)、功能強(qiáng)大的編程語言,廣泛應(yīng)用于各種領(lǐng)域,包括網(wǎng)絡(luò)編程、數(shù)據(jù)分析、人工智能等,在開發(fā)過程中,我們經(jīng)常會遇到需要遠(yuǎn)程調(diào)試和性能優(yōu)化的情況,本文將介紹如何利用遠(yuǎn)程調(diào)試工具和性能優(yōu)化技巧來提高 Python 應(yīng)用程序的效率和性能2024-05-05

