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二叉树的实现实例
Nov 21 Python
实例讲解python函数式编程
Jun 09 Python
快速入手Python字符编码
Aug 03 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
Nov 16 Python
python中使用print输出中文的方法
Jul 16 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
Python Selenium 之数据驱动测试的实现
Aug 01 Python
Django中URL的参数传递的实现
Aug 04 Python
Pytorch 实现权重初始化
Dec 31 Python
对pytorch的函数中的group参数的作用介绍
Feb 18 Python
python制作抽奖程序代码详解
Jan 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
利用js调用后台php进行数据处理原码
2006/10/09 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
限制文本字节数js代码
2007/03/06 Javascript
Javascript Math对象
2009/08/13 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
javascript关于“时间”的一次探索
2019/07/24 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
初步解析Python下的多进程编程
2015/04/28 Python
numpy自动生成数组详解
2017/12/15 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
Python ellipsis 的用法详解
2020/11/20 Python
试用期解除劳动合同通知书
2015/04/16 职场文书
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
SQL SERVER存储过程用法详解
2022/02/24 SQL Server