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之入门(四)运算
May 27 Python
Django中使用locals()函数的技巧
Jul 16 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
Python实现图片滑动式验证识别方法
Nov 09 Python
python设置值及NaN值处理方法
Jul 03 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
Python @property使用方法解析
Sep 17 Python
使用Django清空数据库并重新生成
Apr 03 Python
调整Jupyter notebook的启动目录操作
Apr 10 Python
python实现马丁策略的实例详解
Jan 15 Python
Python获取百度热搜的完整代码
Apr 07 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程序--记数器
2006/10/09 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
js+csss实现的一个带复选框的下拉框
2014/09/29 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
Python自动重试HTTP连接装饰器
2015/04/28 Python
python采集百度百科的方法
2015/06/05 Python
Python文件读取的3种方法及路径转义
2015/06/21 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
2015年食品安全宣传周活动总结
2015/07/09 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
Python 如何实现文件自动去重
2021/06/02 Python
浅谈Web Storage API的使用
2021/06/23 Javascript
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android