1、概述
QToolBox是Qt框架中的一个控件,它提供了一个带标签页的容器,用户可以通过点击标签页标题来切换不同的页面。QToolBox类似于一个带有多页选项卡的控件,但每个“选项卡”都是一个完整的页面,而不仅仅是标签。这使得QToolBox非常适合于展示不同类别的信息或功能,而不需要占用大量的屏幕空间。
QToolBox的每个页面都可以包含其他控件,如按钮、文本框、标签等,从而允许开发者创建复杂的用户界面。页面可以通过编程方式动态添加或移除,也可以通过用户交互(如点击标签)来切换。
2、重要方法
QToolBox提供了一系列方法来管理其页面,以下是一些常用的方法:
addItem(QWidget *page, const QString &text)
:向QToolBox中添加一个新页面,并设置页面的标题。removeItem(int index)
:根据索引移除一个页面。setCurrentIndex(int index)
:设置当前显示的页面索引。currentIndex()
:返回当前显示的页面索引。itemText(int index)
:返回指定索引页面的标题。setItemText(int index, const QString &text)
:设置指定索引页面的标题。widget(int index)
:返回指定索引页面的控件指针。setTabTextColor(const QColor &color)
:设置所有标签的文本颜色。setTabTextColor(int index, const QColor &color)
:设置指定索引标签的文本颜色。
3、重要信号
QToolBox提供了几个信号来响应页面切换等事件,但相比于其他Qt控件,它的信号较少。以下是一个重要的信号:
currentChanged(int index)
:当当前显示的页面改变时发出。参数index是新的当前页面的索引。
#include <QApplication>
#include <QToolBox>
#include <QWidget>
#include <QVBoxLayout>
#include <QPushButton>int main(int argc, char *argv[]) {QApplication app(argc, argv);// Create main widgetQWidget *mainWidget = new QWidget;mainWidget->setWindowTitle("QToolBox Demo");mainWidget->resize(300, 400);// Create QToolBoxQToolBox *toolBox = new QToolBox;// Create pages with different widgets// Page 1QWidget *page1 = new QWidget;QVBoxLayout *layout1 = new QVBoxLayout(page1);layout1->addWidget(new QPushButton("Button 1"));layout1->addWidget(new QPushButton("Button 2"));toolBox->addItem(page1, "Page 1");// Page 2QWidget *page2 = new QWidget;QVBoxLayout *layout2 = new QVBoxLayout(page2);layout2->addWidget(new QPushButton("Button 3"));layout2->addWidget(new QPushButton("Button 4"));toolBox->addItem(page2, "Page 2");// Page 3QWidget *page3 = new QWidget;QVBoxLayout *layout3 = new QVBoxLayout(page3);layout3->addWidget(new QPushButton("Button 5"));layout3->addWidget(new QPushButton("Button 6"));toolBox->addItem(page3, "Page 3");// Set up main layoutQVBoxLayout *mainLayout = new QVBoxLayout(mainWidget);mainLayout->addWidget(toolBox);mainWidget->show();return app.exec();
}
觉得有帮助的话,打赏一下呗。。
需要商务合作(定制程序)的欢迎私信!!