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 zip文件 压缩
Dec 24 Python
python爬虫教程之爬取百度贴吧并下载的示例
Mar 07 Python
Python实现通讯录功能
Feb 22 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
May 21 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
Sep 18 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
Python模块相关知识点小结
Mar 09 Python
Python如何根据时间序列数据作图
May 12 Python
基于python检查矩阵计算结果
May 21 Python
Python 如何对文件目录操作
Jul 10 Python
python xlwt模块的使用解析
Apr 13 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
ThinkPHP添加更新标签的方法
2014/12/05 PHP
Codeigniter发送邮件的方法
2015/03/19 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
微信jssdk逻辑在vue中的运用详解
2018/11/14 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
python的正则表达式re模块的常用方法
2013/03/09 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
一套带网友答案的.NET笔试题
2016/12/06 面试题
本科生求职简历的自我评价
2013/10/21 职场文书
英文求职信结束语大全
2013/10/26 职场文书
质量工程师岗位职责
2013/11/16 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
公务员党员评议表自我鉴定
2014/09/14 职场文书
合作协议书范本
2014/10/25 职场文书
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android
Nginx配置使用详解
2022/07/07 Servers