QT QHBoxLayout控件 全面详解

        本系列文章全面的介绍了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样式的举例,较为全面且详细的介绍了所有的控件。       

        本文详细的介绍了QHBoxLayout控件的各种操作,例如 头文件、创建控件创建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 QHBoxLayout控件 全面详解目录

1 头文件

2 创建控件

3 创建Layout

4 添加控件

5 添加控件伸缩因子

6 添加间隔和边距

7 插入控件

8 移除控件

9 清空布局

10 获取控件

11 设置布局到窗口

12 .h源代码

13 .cpp源代码

14 继承关系

15 相关文章

16 系列文章


        QHBoxLayout是Qt框架中的一个布局管理器,用于在水平方向上排列子控件。它是QLayout的子类,允许你将多个控件(如按钮、标签、文本框等)水平放置在一个容器中。使用QHBoxLayout可以自动处理控件的大小和位置,使得界面更加灵活和响应式。

水平排列:QHBoxLayout将添加的控件从左到右排列,直到容器的宽度被填满。

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

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

控件伸缩:可以设置控件的伸缩因子,控制它们在布局中占用的空间比例。

1 头文件

#include <QHBoxLayout>

2 创建控件

    QWidget window;
    QHBoxLayout *layout = new QHBoxLayout;

    QPushButton *button1 = new QPushButton("Button 1");
    QPushButton *button2 = new QPushButton("Button 2");
    QPushButton *button3 = new QPushButton("Button 3");

    layout->addWidget(button1);
    layout->addWidget(button2);
    layout->addWidget(button3);

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

3 创建Layout

QHBoxLayout *layout = new QHBoxLayout();

4 添加控件

使用 addWidget() 方法将控件添加到布局中。

QPushButton *button1 = new QPushButton("按钮 1");
QPushButton *button2 = new QPushButton("按钮 2");
layout->addWidget(button1);
layout->addWidget(button2);

5 添加控件伸缩因子

使用 addWidget() 方法的第三个参数设置控件的伸缩因子,控制控件在布局中占用的空间比例。

layout->addWidget(button1, 1); // 伸缩因子为 1
layout->addWidget(button2, 2); // 伸缩因子为 2,button2 将占用比 button1 更多的空间

6 添加间隔和边距

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

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

7 插入控件

使用 insertWidget() 方法可以在指定位置插入控件。

layout->insertWidget(1, new QPushButton("插入按钮")); // 在索引 1 处插入新按钮

8 移除控件

使用 removeWidget() 方法可以从布局中移除控件。

layout->removeWidget(button1); // 从布局中移除 button1

9 清空布局

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

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

10 获取控件

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

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

11 设置布局到窗口

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

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

12 .h源代码

#pragma once

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

#include <QHBoxLayout>

class QHBoxLayout : public QMainWindow
{
    Q_OBJECT

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

private:
    Ui::QHBoxLayoutClass ui;

	QHBoxLayout *layout;
};

13 .cpp源代码

#include "QHBoxLayout.h"

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

	layout = new QHBoxLayout();

	QPushButton *button1 = new QPushButton("按钮 1");
	QPushButton *button2 = new QPushButton("按钮 2");
	layout->addWidget(button1);
	layout->addWidget(button2);

	layout->addWidget(button1, 1); // 伸缩因子为 1
	layout->addWidget(button2, 2); // 伸缩因子为 2,button2 将占用比 button1 更多的空间

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

	layout->insertWidget(1, new QPushButton("插入按钮")); // 在索引 1 处插入新按钮

	layout->removeWidget(button1); // 从布局中移除 button1

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

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

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



}

QHBoxLayout::~QHBoxLayout()
{}

14 继承关系

15 相关文章

16 系列文章

ps: 其它说明

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

上一篇:泷羽sec-----shell编程(完结)


下一篇:大数据和云计算在 WMS 中的应用