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使用PyV8执行javascript代码示例分享
Dec 04 Python
python统计字符串中指定字符出现次数的方法
Apr 04 Python
python中常用检测字符串相关函数汇总
Apr 15 Python
Python socket编程实例详解
May 27 Python
python安装与使用redis的方法
Apr 19 Python
python根据多个文件名批量查找文件
Aug 13 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
Aug 15 Python
使用Tkinter制作信息提示框
Feb 18 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
May 22 Python
OpenCV+Python3.5 简易手势识别的实现
Dec 21 Python
pycharm配置QtDesigner的超详细方法
Jan 25 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
Javascript中的call()方法介绍
2015/03/15 Javascript
Vue.JS入门教程之处理表单
2016/12/01 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
python实现用户答题功能
2018/01/17 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
美国家居装饰店:Pier 1
2019/09/04 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
应聘编辑职位自荐信范文
2014/01/05 职场文书
最新个人职业生涯规划书
2014/01/22 职场文书
幼儿教师工作感言
2014/02/14 职场文书
日语系毕业求职信
2014/07/27 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python