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实现颜色rgb和hex相互转换的函数
Mar 19 Python
python3实现短网址和数字相互转换的方法
Apr 28 Python
一步步解析Python斗牛游戏的概率
Feb 12 Python
Python配置mysql的教程(推荐)
Oct 13 Python
Python从Excel中读取日期一列的方法
Nov 28 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
Python 日期区间处理 (本周本月上周上月...)
Aug 08 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
python序列类型种类详解
Feb 26 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
最新pycharm安装教程
Nov 18 Python
Python中使用Lambda函数的5种用法
Apr 01 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脚本的10个技巧(4)
2006/10/09 PHP
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
第七章 php自定义函数实现代码
2011/12/30 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
jquery 实现的全选和反选
2009/04/15 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
简单介绍Python中的JSON模块
2015/04/08 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
中学生在校期间的自我评价分享
2013/11/13 职场文书
物理教师自荐信范文
2013/12/28 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
初中班长竞选稿
2015/11/20 职场文书