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发送email的3种方法
Apr 28 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
谈谈python中GUI的选择
Mar 01 Python
详解flask表单提交的两种方式
Jul 21 Python
Python解决走迷宫问题算法示例
Jul 27 Python
基于python实现简单日历
Jul 28 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
Jun 11 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
python模块和包的应用BASE_PATH使用解析
Dec 14 Python
Django admin 实现search_fields精确查询实例
Mar 30 Python
python re模块常见用法例举
Mar 01 Python
python中subplot大小的设置步骤
Jun 28 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与SQL注入攻击[三]
2007/04/17 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
php截取中文字符串函数实例
2015/02/23 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
Angular4 中常用的指令入门总结
2017/06/12 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
举例介绍Python中的25个隐藏特性
2015/03/30 Python
python排序方法实例分析
2015/04/30 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
自我鉴定怎么写
2014/01/12 职场文书
学校教研活动总结
2014/07/02 职场文书
走进敬老院活动总结
2014/07/10 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript
PyTorch中permute的使用方法
2022/04/26 Python