当前位置: 首页> 文旅> 旅游 > 【Qt】界面组织大师:Qt中的容器控件QGroupBox与QTabWidget

【Qt】界面组织大师:Qt中的容器控件QGroupBox与QTabWidget

时间:2025/7/11 0:34:34来源:https://blog.csdn.net/Colorful___/article/details/139047832 浏览次数:0次

文章目录

  • 前言:
  • 1. Group Box
  • 2. Tab Widget
    • 2.1. 代码示例: 使用标签页管理多组控件
  • 总结:

前言:

在GUI(图形用户界面)设计中,良好的组织和布局是提升用户体验的关键因素之一。Qt框架提供了多种控件,允许开发者以灵活和直观的方式构建复杂的界面。本篇文章将重点介绍两种Qt中的容器类控件:QGroupBoxQTabWidget,它们在管理界面元素和增强用户交互方面发挥着重要作用。通过使用这些控件,开发者可以创建清晰、有序且易于导航的界面。

多元素控件,包含内容,是一个一个的自定义好的 “Item” 对象。
容器类控件,包含的内容是前面已经学过的各种控件了。QPushButton,QLineEidit,QLabel等…

1. Group Box

使用 QGroupBox 实现⼀个带有标题的分组框.。可以把其他的控件放到里面作为⼀组. 这样看起来能更好看⼀点。
注意, 不要把 QGroupBoxQButtonGroup 混淆。 (之前在介绍 QRadionButton 的时候提
到了 QButtonGroup )。
在这里插入图片描述

GroupBox 的名字可以改。 可以把其他的各种控件放到 GroupBox 中
(这些内部的控件的父元素就不是this了,而是这个GroupBox )
就只是为了让界面看起来更好看一点

当一个界面比较复杂的时候,包含了很多控件的时候,分组框就可以把具有关联关系的控件,组织到一起。
在这里插入图片描述
在这里插入图片描述

之前创建的控件都是以this 来作为父元素的,树形结就是可以一直往下延伸的。

在这里插入图片描述

2. Tab Widget

使用 QTabWidget 实现⼀个带有标签页的控件, 可以往里面添加⼀些 widget. 进⼀步的就可以通过标签页来切换。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.1. 代码示例: 使用标签页管理多组控件

创建一个程序,带有一个TableWidget 作为标签页。
提供两个按钮,分别创建新的标签页,关闭当前选中的标签页。当切换标签页的时候,也能感知到变化。

#include "widget.h"
#include "ui_widget.h"
#include <QLabel>
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 现在每个标签页中, 添加一个LableQLabel* label1 = new QLabel(ui->tab);label1->setText("标签页1");label1->resize(100, 50);QLabel* label2 = new QLabel(ui->tab_2);label2->setText("标签页2");label2->resize(100, 50);// TableWidget 上面的关闭标关闭页面connect(ui->tabWidget, &QTabWidget::tabCloseRequested, this, &Widget::closeTab);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{// 使用 addTab 方法来创建新的标签页// 参数1 要指定一个 QWidget// 参数2 指定这个标签页的 text(标题), 此处标题就叫做 Tab + 数字int count = ui->tabWidget->count();QWidget* w = new QWidget();ui->tabWidget->addTab(w, QString("Tab ")+ QString::number(count+1));// 添加一个 QLabel 显示内容QLabel* label = new QLabel(w);label->setText(QString("标签页 ") + QString::number(count + 1));label->resize(100, 50);// 设置新标签页被选中ui->tabWidget->setCurrentIndex(count);
}void Widget::on_pushButton_2_clicked()
{// 获取到当前选中的标签页下标int index = ui->tabWidget->currentIndex();// 删除标签页ui->tabWidget->removeTab(index);
}void Widget::closeTab(int index)
{ui->tabWidget->removeTab(index);
}void Widget::on_tabWidget_currentChanged(int index)
{qDebug() << "当前选中的标签页是:" << index;
}

在这里插入图片描述

总结:

本文详细介绍了Qt中的两种容器控件:QGroupBoxQTabWidgetQGroupBox通过分组框的方式,帮助开发者将界面上的控件进行逻辑分组,使得界面更加整洁和美观。而QTabWidget则提供了一种通过标签页来管理和切换不同界面内容的方法,使得用户可以方便地在不同的视图或数据集之间切换。通过代码示例,我们展示了如何使用这些控件来创建和管理标签页,以及如何响应用户的操作,如创建新标签页、关闭当前选中的标签页,以及在标签页切换时获取通知。这些控件的合理运用,不仅能够提升应用的界面美观度,还能增强用户的操作体验,使得应用更加人性化和易于使用。

关键字:【Qt】界面组织大师:Qt中的容器控件QGroupBox与QTabWidget

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: