当前位置: 首页 > news >正文

【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt常用控件 | 布局管理器 | 表单布局Form Layout

文章编号:Qt 学习笔记 / 44

文章目录

  • Qt常用控件 | 布局管理器 | 表单布局Form Layout
    • 一、QFormLayout介绍
      • 1. 简介
      • 2. 常用方法
    • 二、QFormLayout使用
      • 1. 图形化创建表单布局
      • 2. 代码创建表单布局


一、QFormLayout介绍

1. 简介

QFormLayout是Qt中的一个布局管理器,用于在窗口中创建表单布局。它能够根据需要自动调整表单元素的大小和位置,从而创建一个漂亮且具有一致性的表单界面。

QFormLayout按照类似HTML表单的方式将窗口分割成行和列,每个表单元素都放置在一个单独的行中。每一行通常包含一个标签(用于描述表单元素的用途)和一个表单控件(如文本框、下拉框等)。

在这里插入图片描述

2. 常用方法

方法说明
addRow(label, field)在表单布局中添加一行。label是一个描述表单元素用途的字符串或QWidget,field是要添加的表单控件。
setAlignment(label, alignment)设置标签的对齐方式。label可以是字符串或QWidget,alignment可以是Qt中的对齐方式(如Qt.AlignLeft、Qt.AlignRight等)。
setSpacing(spacing)设置表单元素之间的间距。
spacing是一个整数,表示像素值。
setFieldGrowthPolicy(policy)设置表单元素的伸展策略。policy可以是QFormLayout.FieldsStayAtSizeHint、QFormLayout.ExpandingFieldsGrow、QFormLayout.AllNonFixedFieldsGrow
setFormAlignment(alignment)设置表单布局的对齐方式。
alignment可以是Qt中的对齐方式。
setLabelAlignment(alignment)设置标签的对齐方式。
alignment可以是Qt中的对齐方式。
removeRow(row)移除指定位置的表单行。
rowWrapPolicy()返回表单布局的换行策略。
rowCount()返回表单布局中的行数。
itemAt(index)返回指定索引位置的表单项。

二、QFormLayout使用

1. 图形化创建表单布局

  1. 在界面中拖入表单布局框,将三个标签和三个输入框拖入表单布局框中,如下图所示
    在这里插入图片描述

  2. 点击运行,查看运行结果
    在这里插入图片描述

2. 代码创建表单布局

  1. 编写代码,创建三个标签(Label)和三个输入框(Line Edit)和一个提交按钮
#include "widget.h"
#include "ui_widget.h"
#include<QLabel>
#include<QPushButton>
#include<QLineEdit>
#include<QFormLayout>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//创建三个标签QLabel* label1 =new QLabel("账号");QLabel* label2 =new QLabel("密码");QLabel* label3 =new QLabel("验证码");//创建三个输入框QLineEdit* edit1 =new QLineEdit();QLineEdit* edit2 =new QLineEdit();QLineEdit* edit3 =new QLineEdit();//创建一个按钮QPushButton* pushbutton =new QPushButton("提交");//创建表单布局QFormLayout* layout = new QFormLayout();layout->addRow(label1,edit1);layout->addRow(label2,edit2);layout->addRow(label3,edit3);layout->addRow(nullptr,pushbutton);//将layout设置到窗口中this->setLayout(layout);
}Widget::~Widget()
{delete ui;
}
  1. 运行代码,查看运行结果,随窗口变化而变化
    在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/351478.html

相关文章:

  • 数智赋能内涝治理,四信城市排水防涝解决方案保障城市安全运行
  • docker实战之搭建MYSQL8.0主从同步
  • LTD275次升级 | 网页编辑器新增AI翻译 • 文章|产品等内容可导出 • 新增交互数据 • 购物清单可导出• 官微中心app出新版
  • 代码随想录算法训练营第36期DAY36
  • zookeeper安装教程
  • windows2008修改远程桌面端口,如何果断修改远程桌面端口,确保系统安全无忧!
  • 【计算机网络原理】对传输层TCP协议的重点知识的总结
  • mysql实战——半同步复制搭建
  • Leetcode 3152. Special Array II
  • 人工智能与区块链技术:开启未来科技的双引擎
  • Python筑基之旅-MySQL数据库(二)
  • web前端面试题
  • 创建型模式之单例
  • 在 Next.js 应用中创建ContactForm表单提交
  • HTML5 3D图像应用
  • SQL——DML对表中数据的操作
  • 深度学习之基于Matlab卷积神经网络(CNN)手写数字识别
  • 工业4.0 企业级云MES全套源码,支持app、小程序、H5、台后管理端
  • Science| 单体耦合纤维实现无芯片纺织电子(纤维器件/智能织物/柔性可穿戴电子)
  • 前端面试项目细节重难点(已工作|做分享)
  • ASTGCN 论文学习下
  • 【面经】单片机
  • 基于manifest文件批量将coding的仓库导入gitlab中
  • 【数据结构】——顺序表与链表
  • C++简洁版全排列代码
  • 2024电工杯B题保姆级分析完整思路+代码+数据教学
  • 基于svm的水果识别
  • 【DevOps】深入理解 Nginx Location 块:配置示例与应用场景详解
  • 专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(十一)
  • 未来机器人的发展方向