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 04 Python
Python实现文件复制删除
Apr 19 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
Django学习笔记之ORM基础教程
Mar 27 Python
Python图像处理之识别图像中的文字(实例讲解)
May 10 Python
对Python3之进程池与回调函数的实例详解
Jan 22 Python
Python3.5装饰器原理及应用实例详解
Apr 30 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 Python
Python urlencode和unquote函数使用实例解析
Mar 31 Python
python中def是做什么的
Jun 10 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
php Hex RGB颜色值互换的使用
2013/05/10 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
前端设计师们最常用的JS代码汇总
2016/09/25 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
python中remove函数的踩坑记录
2021/01/04 Python
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
上课看小说检讨书
2014/02/22 职场文书
法院授权委托书范文
2014/08/02 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
六五普法学习心得体会
2016/01/21 职场文书
入党转正申请书范文
2019/05/20 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android