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中精确输出JSON浮点数的方法
Apr 18 Python
Python3.x中自定义比较函数
Apr 24 Python
python中利用队列asyncio.Queue进行通讯详解
Sep 10 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
Python pandas常用函数详解
Feb 07 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
Oct 21 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
如何基于Python实现数字类型转换
Feb 07 Python
基于nexus3配置Python仓库过程详解
Jun 15 Python
python实现扫雷游戏的示例
Oct 20 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 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
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
第十节--抽象方法和抽象类
2006/11/16 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
JS中的phototype详解
2017/02/04 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
Python中atexit模块的基本使用示例
2015/07/08 Python
python3实现逐字输出的方法
2019/01/23 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
Python 列表反转显示的四种方法
2020/11/16 Python
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
EJB的几种类型
2012/08/15 面试题
Unix控制后台进程都有哪些进程
2016/09/22 面试题
会计岗位职责
2013/11/08 职场文书
安全生产标语
2014/06/06 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
万能检讨书2000字
2014/10/17 职场文书
个园导游词
2015/02/04 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL