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

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 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();
}

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

           

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

http://www.lryc.cn/news/495571.html

相关文章:

  • 翁知宜荣获“易学名师”与“国学文化传承人”称号
  • 20241128解决Ubuntu20.04安装libwxgtk3.0-dev异常的问题
  • sql分类
  • stm32里一个定时器可以提供多路信号吗?
  • Java安全—原生反序列化重写方法链条分析触发类
  • 2023考研王道计算机408数据结构+操作系统+计算机组成原理+计算机网络
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-files.py
  • 「Mac畅玩鸿蒙与硬件34」UI互动应用篇11 - 颜色选择器
  • ELK(Elasticsearch + logstash + kibana + Filebeat + Kafka + Zookeeper)日志分析系统
  • 07.ES11 08.ES12
  • linux一键部署apache脚本
  • 2022 年 6 月青少年软编等考 C 语言三级真题解析
  • MySQL - Why Do We Need a Thread Pool? - mysql8.0
  • Linux互斥量读写锁
  • 网络安全之IP伪造
  • ARM CCA机密计算安全模型之硬件强制安全
  • 【论文笔记】A Token-level Contrastive Framework for Sign Language Translation
  • C#窗体简单登录
  • 基于ZYNQ-7000系列的FPGA学习笔记3——开发环境搭建点亮一个LED
  • 队列-链式描述(C++)
  • Kali Linux使用Netdiscover工具的详细教程
  • arkTS:使用ArkUI实现用户信息的持久化管理与自动填充(PersistentStorage)
  • IntelliJ+SpringBoot项目实战(二十)--基于SpringSecurity实现Oauth2服务端和客户端
  • 如何实现剪裁功能
  • LeetCode 动态规划 爬楼梯
  • Java 工厂模式:深度解析与应用指南
  • HTML5系列(5)-- SVG 集成详解
  • 深度学习常见数据集处理方法
  • 1180 - 【入门】数字出现次数
  • C++20: 像Python一样split字符串