QT QFormLayout控件 全面详解

        本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、Item Virws (Model-Based)  (listView、treeView、tableView、columnView、undoView) 、DisPlay Widgets(listWidget、treeWidget、tableWidget)、Containers(groupBox、scrollArea、toolBox、tabWidget、stackedWidget、frame、widget、mdiArea、dockWidget、axWidget)、Input Widgets(comboBox、fontComboBox、lineEdit、textEdit、plainTextEdit、spinBox、doubleSpinBox、timeEdit、dateEdit、dateTimeEdit、dial、horizontalScrollBar、verticalScrollBar、horizontalSlider、verticalSlider、keySequenceEdit)、item Widgets(Item-Based) (label、textBrowser、graphicsView、calendarWidget、lcdNumber、progressBar、line、openGLWidget、quickWidget) 界面的自适应界面的开发,控件接口的调用、QSS样式的举例,较为全面且详细的介绍了所有的控件。      
        本文详细的介绍了QFormLayout控件的各种操作,例如 头文件、创建控件 、创建Layout、添加控件、添加控件伸缩因子、添加间隔和边距、插入控件、移除控件、清空布局、获取控件、设置布局到窗口、.h源代码、cpp源代码、继承关系、系列文章等等操作
        本系列QT全面详解文章目前共有五十七篇,本系列文章较为详细的讲述了QT控件的操作和使用。

选择付费专栏

1.内容全面:常用接口的所有操作 详细举例

2.内容详细:QSS、信号槽 详细举例

3.快速开发:日常开发中所有控件 逐个精通

4.控件全面:QT中所有控件包含其中 全面熟悉

5.内容保障:57种控件全部涵盖其中 内容全面

6.内容质量:QT控件使用详解专栏 质量分>90分, 阅读量超30万+

7.控件精通:全面学习速成 界面大师

8.高效学习:不到一个月精通全部控件

版权声明:本文禁止转载、复制二次发布,仅供付费读者研究 

有相关问题请联系 Dream.2017@qq.com 官方网站 www.dreambegins.vip

QT QFormLayout控件 全面详解目录

1 头文件

2 创建控件

3 创建Layout

4 添加控件

5 添加控件设置标签

6 添加间隔和边距

7 移除控件

8 清空布局

9 获取控件

10 设置布局到窗口

11 .h源文件

12 .cpp源文件

13 继承关系

14 章节文章

15 系列文章


        QFormLayout是Qt框架中的一种布局管理器,专门用于创建表单样式的界面。它允许你将控件以“标签-控件”对的形式排列,通常用于输入表单、设置界面等场景。QFormLayout会自动处理控件的大小和位置,使得表单的布局更加整齐和美观。

标签与控件对齐:QFormLayout将标签和对应的控件(如文本框、下拉框等)以行的形式排列,标签通常位于左侧,控件位于右侧。

自动调整大小:当窗口大小改变时,QFormLayout会自动调整子控件的大小和位置。

灵活性:可以根据需要添加任意数量的标签和控件,支持不同类型的控件。

间距和边距:可以设置控件之间的间距和布局的边距,以控制布局的外观。

1 头文件

#include <QFormLayout>

2 创建控件

    QWidget window;
    QFormLayout *layout = new QFormLayout;

    QLineEdit *nameEdit = new QLineEdit;
    QLineEdit *emailEdit = new QLineEdit;
    QLineEdit *phoneEdit = new QLineEdit;

    layout->addRow(new QLabel("Name:"), nameEdit);
    layout->addRow(new QLabel("Email:"), emailEdit);
    layout->addRow(new QLabel("Phone:"), phoneEdit);

    QPushButton *submitButton = new QPushButton("Submit");
    layout->addRow(submitButton);

    window.setLayout(layout);
    window.setWindowTitle("QFormLayout Example");
    window.show();

3 创建Layout

QFormLayout *formLayout = new QFormLayout();

4 添加控件

使用 addRow() 方法将标签和控件添加到布局中。

	QLineEdit *nameEdit = new QLineEdit();
	QLineEdit *emailEdit = new QLineEdit();
	formLayout->addRow("姓名:", nameEdit);
	formLayout->addRow("电子邮件:", emailEdit);

5 添加控件设置标签

你可以在添加控件时直接设置标签。

	QSpinBox *ageSpinBox = new QSpinBox();
	formLayout->addRow("年龄:", ageSpinBox);

6 添加间隔和边距

使用 setSpacing() 和 setContentsMargins() 方法设置控件之间的间隔和布局的边距。

	formLayout->setSpacing(10); // 设置控件之间的间隔为 10 像素
	formLayout->setContentsMargins(15, 15, 15, 15); // 设置布局的边距

7 移除控件

使用 removeRow() 方法可以从布局中移除指定的行。

formLayout->removeRow(1); // 移除第二行(索引从 0 开始)

8 清空布局

如果你想清空布局中的所有控件,可以使用 QLayout::deleteLater() 方法。

	//QLayoutItem *item;
	//while ((item = formLayout->takeAt(0)) != nullptr) {
	//	delete item->widget(); // 删除控件
	//	delete item; // 删除布局项
	//}

9 获取控件

你可以使用 itemAt() 方法获取布局中的控件。

QWidget *widget = formLayout->itemAt(0)->widget(); // 获取索引 0 处的控件

10 设置布局到窗口

将布局设置为窗口的布局。

	QWidget *window = new QWidget;
	window->setLayout(formLayout);
	window->show();

11 .h源文件

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_QFormLayout.h"

#include <QFormLayout>

class QFormLayout : public QMainWindow
{
    Q_OBJECT

public:
    QFormLayout(QWidget *parent = nullptr);
    ~QFormLayout();

private:
    Ui::QFormLayoutClass ui;

	QFormLayout *formLayout;
};

12 .cpp源文件

#include "QFormLayout.h"

QFormLayout::QFormLayout(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

	formLayout = new QFormLayout();

	QLineEdit *nameEdit = new QLineEdit();
	QLineEdit *emailEdit = new QLineEdit();
	formLayout->addRow("姓名:", nameEdit);
	formLayout->addRow("电子邮件:", emailEdit);


	QSpinBox *ageSpinBox = new QSpinBox();
	formLayout->addRow("年龄:", ageSpinBox);

	formLayout->setSpacing(10); // 设置控件之间的间隔为 10 像素
	formLayout->setContentsMargins(15, 15, 15, 15); // 设置布局的边距

	formLayout->removeRow(1); // 移除第二行(索引从 0 开始)

	//QLayoutItem *item;
	//while ((item = formLayout->takeAt(0)) != nullptr) {
	//	delete item->widget(); // 删除控件
	//	delete item; // 删除布局项
	//}

	QWidget *widget = formLayout->itemAt(0)->widget(); // 获取索引 0 处的控件

	QWidget *window = new QWidget;
	window->setLayout(formLayout);
	window->show();

}

QFormLayout::~QFormLayout()
{}

13 继承关系

14 章节文章

15 系列文章

ps: 其它说明

希望大家多点点赞,收藏,也希望多评论,指出不足的地方,因为是系列文章所以有不足的地方会整个系列优化,谢谢大家支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/922238.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PCA算法所体现的核心数学思维

一、PCA算法的基本思想 PCA算法的核心思想是通过线性变换&#xff0c;将数据从原始的高维空间投影到低维空间&#xff0c;同时尽可能保留数据的主要变异性。这种变换是通过找到一组新的坐标轴&#xff08;即主成分&#xff09;来实现的&#xff0c;这些坐标轴是原始数据空间的…

如何解决pdf.js跨域从url动态加载pdf文档

摘要 当我们想用PDF.js从URL加载文档时&#xff0c;将会因遇到跨域问题而中断&#xff0c;且是因为会触发了PDF.js和浏览器的双重CORS block&#xff0c;这篇文章将会介绍&#xff1a;①如何禁用pdf.js的跨域&#xff1f;②如何绕过浏览器的CORS加载URL文件&#xff1f;②如何使…

C语言数据结构——详细讲解 双链表

从单链表到双链表&#xff1a;数据结构的演进与优化 前言一、单链表回顾二、单链表的局限性三、什么是双链表四、双链表的优势1.双向遍历2.不带头双链表的用途3.带头双链表的用途 五、双链表的操作双链表的插入操作&#xff08;一&#xff09;双链表的尾插操作&#xff08;二&a…

Java小白成长记(创作笔记二)

目录 序言 思维导图 续 用户登录/注册 数据表 实体层 持久层 服务层 认证与授权 整合springsecurity controller注册测试 controller登录测试 跨域解决 方法 Java小白成长记&#xff08;创作笔记一&#xff09; Java小白成长记&#xff08;创作笔记二&#xff09;…

案例研究|阿特斯的JumpServer分布式部署和多组织管理实践

苏州阿特斯阳光电力科技有限公司&#xff08;以下简称为阿特斯&#xff09;是一家集太阳能光伏组件制造和为全球客户提供太阳能应用产品研发、设计、制造、销售的专业公司。 阿特斯集团总部位于加拿大&#xff0c;中国区总部位于江苏省苏州市。通过全球战略和多元化的市场布局…

20241123-四元数高阶奇异值分解-(1)

四元数高阶奇异值分解及其在彩色图像处理中的应用-(1) &#x1f4d4; 声明 &#x1f1e8;&#x1f1f3; : 1️⃣ &#x1f4c3; 原文网址链接: 四元数高阶奇异值分解及其在彩色图像处理中的应用 - ScienceDirect &#x1f517; Quaternion … image processing (arxiv.org) ​ …

游戏引擎学习第20天

视频参考:https://www.bilibili.com/video/BV1VkBCYmExt 解释 off-by-one 错误 从演讲者的视角&#xff1a;对代码问题的剖析与修复过程 问题的起因 演讲者提到&#xff0c;他可能无意中在代码中造成了一个错误&#xff0c;这与“调试时间标记索引”有关。他发现了一个逻辑问题…

python开发之Linux

文章目录 1. 基础2. 进阶链接压缩/解压缩 文件权限用户远程操作编辑文件软件安装 1. 基础 # 查看当前目录下文件 ls# 查看当前目录 pwd# 清除界面内容 clear# 切换目录 cd# 创建目录 mkdir# 创建文件 touch 文件 vi 文件# 强制删除 rm -rf # 复制文件 cp 复制文件 复制文件路径…

Docker2:docker快速入门(部署MySQL)

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

oracle的静态注册和动态注册

oracle的静态注册和动态注册 静态注册&#xff1a; 静态注册 : 指将实例的相关信息手动告知 listener 侦 听 器 &#xff0c; 可以使用netmgr,netca,oem 以及直接 vi listener.ora 文件来实现静态注册&#xff0c;在动态注册不稳定时使用&#xff0c;特点是&#xff1a;稳定&…

杰发科技AC7840——EEP中RAM的配置

sample和手册中示例代码的sram区地址定义不一样 这个在RAM中使用没有限制&#xff0c;根据这个表格留下足够空间即可 比如需要4096字节的eep空间&#xff0c;可以把RAM的地址改成E000&#xff0c;即E000-EFFF&#xff0c;共4096bytes即可。

洛谷 P1616 疯狂的采药 C语言 记忆化搜索

题目&#xff1a; https://www.luogu.com.cn/problem/P1616?contestId215526 完全背包问题&#xff0c;最后一个超出空间了。完全背包和就是无限次的拿&#xff0c;公式跟01背包差不多。 但是&#xff0c;只有当前能拿和拿不下&#xff0c;换下一个。注意要处理好边界条件。…

分布式 Data Warebase - 构筑 AI 时代数据基石

导读&#xff1a;作者以人类世界一个信息层次模型 DIKW 为出发点&#xff0c;引出对计算机世界&#xff08;系统&#xff09;处理数据过程的介绍。接着以一个民宿平台数据架构随业务发展而不断演进的过程&#xff0c;展示了这场信息革命中&#xff0c;在具体应用场景下&#xf…

zotero7 插件使用

zotero style 1、下载地址 Zotero 插件商店 | Zotero 中文社区 2、配置 在工具插件里 3、配置 style 进入高级→设置编辑器 查找 easy 设置完即可显示&#xff0c; 注1&#xff1a;easyscholar的密钥要自行申请注册&#xff0c;注册地址&#xff1a;easySchol…

使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变

作者&#xff1a;来自 Elastic Greg Crist Elasticsearch 推出了一项新功能&#xff1a;Elastic AI Assistant for Search。你可以将其视为 Elasticsearch 和 Kibana 开发人员的内置指南&#xff0c;旨在回答问题、引导你了解功能并让你的生活更轻松。在 Microsoft AI Services…

CCF认证202406-02 | 矩阵重塑(其二)

题目背景 矩阵转置操作是将矩阵的行和列交换的过程。在转置过程中&#xff0c;原矩阵 A 的元素 aij​ 会移动到转置后的矩阵 AT 的 aji​ 的位置。这意味着 A 的第 i 行第 j 列的元素在 AT 中成为了第 j 行第 i 列的元素。 例如&#xff0c;有矩阵 A 如下&#xff1a; A[abc…

【CSP CCF记录】201903-2第16次认证 二十四点

题目 样例1输入 10 934x3 54x5x5 7-9-98 5x6/5x4 3579 1x19-9 1x9-5/9 8/56x9 6x7-3x6 6x44/5 样例1输出 Yes No No Yes Yes No No No Yes Yes 样例1解释 思路 参考&#xff1a;CCF小白刷题之路---201903-2 二十四点&#xff08;C/C 100分&#xff09;_ccf认证小白-CSDN博客 …

docker 容器运行Ruoyi-cloud

1&#xff0c;linux系统安装openjdk1.8,mvn,dokcer,node,git 2&#xff0c;拉取代码 1&#xff09;查看gitee仓库地址 2&#xff09;创建/app文件夹&#xff0c;进入app目录 mkdir /app cd /app 3&#xff09;clone代码 4&#xff09;修改配置文件中nacos地址 # 修改注…

浮点数的表示—IEEE754标准

浮点数的表示—IEEE754标准 引言 我们知道&#xff0c;在计算机中&#xff0c;数字以0和1组成的二进制序列来表示。但是&#xff0c;对于非常大的数字以及非常接近0的数字&#xff0c;简单的存储方式往往会造成精度的丢失。 为了解决这个问题&#xff0c;提供更高效的浮点数…

Window脚本自动化uiautomation详解_番茄出品

Window脚本自动化uiautomation详解_番茄出品 start 有时候pc端电脑&#xff0c;会有一些重复操作&#xff0c;希望能够通过代码实现这些操作。尝试了好几个库&#xff0c;但是识别准确率很低&#xff0c;在苦苦寻找之后&#xff0c;发现一个非常好用的 python 库 &#xff1a…