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的gevent框架的入门教程
Apr 29 Python
Python中正则表达式详解
May 17 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
python读文件的步骤
Oct 08 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 Python
Python requests获取网页常用方法解析
Feb 20 Python
Numpy一维线性插值函数的用法
Apr 22 Python
Python 求向量的余弦值操作
Mar 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
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
浅谈本地WAMP环境的搭建
2015/05/13 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
2018/05/28 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
8个超棒的学习 jQuery 的网站 推荐收藏
2011/04/02 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
[00:11]战神迅矛
2019/03/06 DOTA
利用Python抓取行政区划码的方法
2016/11/28 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
python实现差分隐私Laplace机制详解
2019/11/25 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
个性与发展自我评价
2014/02/11 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL