QT6中QToolBox功能与应用
一.简介
QT 中的 QToolBox 控件是一个非常有特色的容器部件,它提供了一种垂直排列的、可折叠的选项卡界面,非常适合需要分类显示信息或功能的场景。
QToolBox 是 Qt 中用于实现垂直折叠式界面的理想选择。通过将功能或信息分类放入不同的“抽屉”,它可以有效地节省屏幕空间,并提供清晰的导航结构。
二.主要功能与用法
QToolBox 的每个“抽屉”都是一个完整的 QWidget,这意味着你可以在里面放置任何其他控件,布局非常灵活。
1.创建与项管理
使用 addItem() 或 insertItem() 方法向工具箱中添加项。每个项都需要一个内容部件(QWidget)、标签文本(QString),还可以选择性地设置图标(QIcon)。
// 创建 QToolBox
QToolBox *toolBox = new QToolBox(this);
// 创建第一个项的内容 - 一个包含多个按钮的容器
QWidget *page1Widget = new QWidget;
QVBoxLayout *layout1 = new QVBoxLayout(page1Widget);
layout1->addWidget(new QPushButton("按钮 A"));
layout1->addWidget(new QPushButton("按钮 B"));
// 添加第一个项,不带图标
toolBox->addItem(page1Widget, "第一组功能");
// 创建第二个项的内容 - 一个标签
QLabel *page2Label = new QLabel("这里是第二组内容的说明...");
// 添加第二个项,带图标
toolBox->addItem(page2Label, QIcon(":/icons/settings.png"), "第二组设置");
2.项的操作与属性设置
你可以随时获取或修改项的属性,以及控制项的启用状态.
// 获取第一项的文本
QString firstItemText = toolBox->itemText(0);
// 修改第一项的文本
toolBox->setItemText(0, "修改后的组名");
// 禁用第二项
toolBox->setItemEnabled(1, false);
// 移除第一项(索引为0)
toolBox->removeItem(0);
3.信号与事件
当用户切换当前活动的项时,QToolBox 会发出 currentChanged(int index) 信号,你可以连接此信号来执行相应的操作
// 连接信号,当当前项改变时,打印新项的索引
connect(toolBox, &QToolBox::currentChanged, [](int index) {
qDebug() << "切换到项索引:" << index;
});
5.程序界面
三.典型应用场景
QToolBox 的“抽屉”式布局使其特别适合以下场景:
设置/配置对话框:将不同的设置选项(如常规、界面、快捷键)分组放在不同的项中,使界面清晰整洁。
联系人列表或功能导航:类似于旧版QQ好友分组的效果,每个分组下包含多个联系人按钮或功能入口。
工具面板:在图形界面软件(如绘图程序)中,将不同类型的工具(如画笔、形状、图层)分类放置