python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例


Posted in Python onMarch 06, 2020

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_())

运行效果示意图

python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例

setRowWrapPolicy(RowWrapPolicy policy)函数的参数有三个可选项:

QFormLayout::DontWrapRows:该参数的含义是文本框总是出现在标签的后面,其中标签被赋予足够的水平空间以适应表单中出现的最宽的标签,其余的空间被赋予文本框。

QFormLayout::WrapLongRows:该参数通常适用于小屏幕中,当标签和文本框在屏幕的当前行显示不全时,文本框会显示在下一行,使得标签独占一行。

QFormLayout::WrapAllRows:该参数表示标签总是在文本框的上一行。

分别对应的结果如下:

python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例

python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例

python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例

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");

输出结果为:

python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例

小结

  • QFormLayout以表单的形式进行管理界面组件
  • 通过使用QFormLayout可以发现其设置比较简洁明了
  • QFormLayout和QBoxLayout以及QGridLayout一样都支持布局管理器的嵌套使用

本文主要讲解了PyQt5表单布局控件QFormLayout详细使用方法与实例,更多关于PyQt5布局控件使用方法请查看下面的相关链接

Python 相关文章推荐
Python里隐藏的“禅”
Jun 16 Python
在Python下使用Txt2Html实现网页过滤代理的教程
Apr 11 Python
Tensorflow卷积神经网络实例
May 24 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
python判断数字是否是超级素数幂
Sep 27 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 Python
Django密码系统实现过程详解
Jul 19 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
python Zmail模块简介与使用示例
Dec 19 Python
pytorch实现线性回归以及多元回归
Apr 11 Python
python自动化测试之Selenium详解
Mar 13 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 Python
Python使用ElementTree美化XML格式的操作
Mar 06 #Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
Mar 06 #Python
Python 批量读取文件中指定字符的实现
Mar 06 #Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 #Python
python3 xpath和requests应用详解
Mar 06 #Python
python 装饰器功能与用法案例详解
Mar 06 #Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
Mar 06 #Python
You might like
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
让PHP支持页面回退的两种方法
2008/01/10 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
php curl 上传文件代码实例
2015/04/27 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
javascript编程起步(第二课)
2007/01/10 Javascript
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
Python3.2中的字符串函数学习总结
2015/04/23 Python
Python绑定方法与非绑定方法详解
2017/08/18 Python
用Python写王者荣耀刷金币脚本
2017/12/21 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
2019/05/10 Python
python爬虫中多线程的使用详解
2019/09/23 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
使用K.function()调试keras操作
2020/06/17 Python
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
竞聘副主任科员演讲稿
2014/01/11 职场文书
关于工资低的辞职信
2014/01/14 职场文书
打架检讨书300字
2014/02/02 职场文书
有创意的广告词
2014/03/18 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
2014年销售工作总结
2014/12/01 职场文书
飞屋环游记观后感
2015/06/08 职场文书
redis内存空间效率问题的深入探究
2021/05/17 Redis
MongoDB使用场景总结
2022/02/24 MongoDB