当前位置: 首页 > article >正文

qt QToolBox详解

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 widget
    QWidget *mainWidget = new QWidget;
    mainWidget->setWindowTitle("QToolBox Demo");
    mainWidget->resize(300, 400);

    // Create QToolBox
    QToolBox *toolBox = new QToolBox;

    // Create pages with different widgets
    // Page 1
    QWidget *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 2
    QWidget *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 3
    QWidget *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 layout
    QVBoxLayout *mainLayout = new QVBoxLayout(mainWidget);
    mainLayout->addWidget(toolBox);

    mainWidget->show();
    return app.exec();
}

觉得有帮助的话,打赏一下呗。。

           

需要商务合作(定制程序)的欢迎私信!! 


http://www.kler.cn/a/420178.html

相关文章:

  • Burp Suite 实战指南:Proxy 捕获与修改流量、HTTP History 筛选与分析
  • 【CSS in Depth 2 精译_066】11.2 颜色的定义(上)
  • 在Scala中Array不可变的学习
  • Springboot(四十九)SpringBoot3整合jetcache缓存
  • 防火墙iptables
  • 【计算机网络】实验3:集线器和交换器的区别及交换器的自学习算法
  • uart_pl011.c驱动API的zephyr测试
  • Android笔记【11】
  • 【k8s】监控metrics-server
  • MySQL如何区分幻读和不可重复读
  • 力扣第 74 题是 搜索二维矩阵
  • 38 基于单片机的宠物喂食(ESP8266、红外、电机)
  • 什么是六边形图?
  • 数据结构--二叉树删除树节点
  • Python酷库之旅-第三方库Pandas(251)
  • create-vue创建vue3项目
  • Vue 项目中如何解决组件之间的循环依赖
  • 如何增加,减少天堂2单机游戏服务器占用内存
  • 52-基于单片机的超声波、温湿度、光照检测分阶段报警
  • Linux学习笔记13 系统进程管理
  • Javaweb梳理20——Tomcat
  • 创建一个vue前端项目
  • float globalMapVIsualizationLeafSize; 的中文意思是什么
  • leetcode——移除数组
  • 关于开设人工智能教育的培训笔记
  • 如何确保爬虫程序的稳定性和效率:Java爬虫实践