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遍历目录的方法小结
Apr 28 Python
Python爬虫爬取美剧网站的实现代码
Sep 03 Python
Python做文本按行去重的实现方法
Oct 19 Python
python 判断是否为正小数和正整数的实例
Jul 23 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
Python中的pack和unpack的使用
Mar 12 Python
pandas.DataFrame选取/排除特定行的方法
Jul 03 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
Python3 max()函数基础用法
Feb 19 Python
对Python强大的可变参数传递机制详解
Jun 13 Python
Python中url标签使用知识点总结
Jan 16 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 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
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
JQuery中上下文选择器实现方法
2015/05/18 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
在Python的Flask框架下使用sqlalchemy库的简单教程
2015/04/09 Python
Python3.2中Print函数用法实例详解
2015/05/19 Python
Python实现ssh批量登录并执行命令
2016/10/25 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
Python中调用其他程序的方式详解
2019/08/06 Python
python Timer 类使用介绍
2020/12/28 Python
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
自我鉴定模板
2013/10/29 职场文书
读群众路线心得体会
2014/03/07 职场文书
旅游市场营销方案
2014/03/09 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
超越自我演讲稿
2014/05/21 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
2014年校长工作总结
2014/12/11 职场文书
校友会致辞
2015/07/30 职场文书
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers
一文弄懂MySQL索引创建原则
2022/02/28 MySQL