pythonGUI库图形界⾯开发之PyQt5表单布局控件QFormLayout详细使⽤⽅法与实例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("窗体布局管理例⼦")
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()
<_())rows函数的使用方法及实例
运⾏效果⽰意图
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布局控件使⽤⽅法请查看下⾯的相关链接

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。