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

qt QHorizontalBarSeries详解

1、概述

QHorizontalBarSeries 是 Qt Charts 模块中用于创建水平条形图的类,继承自 QAbstractBarSeries。它可以在图表中显示一组水平条形数据,每个条形代表一个数据点,适用于比较不同类别数据的大小关系。

QHorizontalBarSeries 通常与 QBarSet 配合使用,一个 QBarSet 代表一组相关的数据,而 QHorizontalBarSeries 可以包含多个 QBarSet,形成分组的水平条形图。水平条形图与垂直条形图的区别在于数据的展示方向,水平条形图的类别标签在垂直轴上,数值在水平轴上。

2、重要方法

  • QHorizontalBarSeries(QObject *parent = nullptr):构造函数,创建一个水平条形图系列
  • void append(QBarSet *set):向系列中添加一个数据组
  • void remove(QBarSet *set):从系列中移除指定的数据组
  • QList<QBarSet *> barSets() const:返回系列中所有的数据组
  • qreal barWidth() const:返回条形的宽度
  • void setBarWidth(qreal width):设置条形的宽度
  • bool isLabelsVisible() const:判断是否显示数据标签
  • void setLabelsVisible(bool visible):设置是否显示数据标签
  • Qt::Alignment labelsAlignment() const:返回数据标签的对齐方式
  • void setLabelsAlignment(Qt::Alignment alignment):设置数据标签的对齐方式
  • QString labelsFormat() const:返回数据标签的格式字符串
  • void setLabelsFormat(const QString &format):设置数据标签的格式字符串

3、信号

QHorizontalBarSeries 继承自 QAbstractBarSeries,主要信号包括:

  • void clicked(int index, QBarSet *barset):当点击某个条形时触发,参数为条形在数据组中的索引和所在的数据组
  • void hovered(bool status, int index, QBarSet *barset):当鼠标悬停在条形上或离开时触发,status 表示是否悬停,index 为条形索引,barset 为所在数据组
  • void pressed(int index, QBarSet *barset):当按下条形时触发
  • void released(int index, QBarSet *barset):当释放条形时触发
  • void doubleClicked(int index, QBarSet *barset):当双击条形时触发

4、C++ 实例

#include <QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QAreaSeries>
#include <QLegend>
#include <QHCandlestickModelMapper>QT_CHARTS_USE_NAMESPACEint main(int argc, char *argv[])
{QApplication a(argc, argv);// 创建数据集QBarSet *set0 = new QBarSet("Jane");QBarSet *set1 = new QBarSet("John");QBarSet *set2 = new QBarSet("Axel");*set0 << 1 << 2 << 3 << 4 << 5 << 6;*set1 << 5 << 0 << 0 << 4 << 0 << 7;*set2 << 3 << 5 << 8 << 13 << 8 << 5;// 创建水平条形图序列QHorizontalBarSeries *series = new QHorizontalBarSeries();series->append(set0);series->append(set1);series->append(set2);// 创建图表QChart *chart = new QChart();chart->addSeries(series);chart->setTitle("Horizontal Bar Chart Example");// 创建轴QStringList categories;categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";QBarCategoryAxis *axisY = new QBarCategoryAxis();axisY->append(categories);QValueAxis *axisX = new QValueAxis();chart->addAxis(axisY, Qt::AlignLeft);chart->addAxis(axisX, Qt::AlignBottom);series->attachAxis(axisY);series->attachAxis(axisX);// 设置轴的范围axisX->setRange(0, 15);// 创建视图QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);// 显示图表QMainWindow window;window.setCentralWidget(chartView);window.resize(400, 300);window.show();return a.exec();
}

点击扫码加入群聊

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

           

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

http://www.dtcms.com/a/388776.html

相关文章:

  • 半导体制造的芯片可靠性测试的全类别
  • MySQL 索引详解:原理、类型与优化实践
  • AI 重塑就业市场:哪些岗位将被替代?又会催生哪些新职业赛道?
  • mysql表分区备份太慢?如何精准“狙击”所需数据?
  • InVEST实践及在生态系统服务供需、固碳、城市热岛、论文写作等实际项目中应用
  • 数据库视图详解
  • C#并行处理CPU/内存监控:用PerformanceCounter实时监控,避免资源过载(附工具类)
  • 数据结构初阶——红黑树的实现(C++)
  • PS练习1:将风景图放到相框中
  • Seedream 4.0深度评测:新一代AI图像创作的革命性突破
  • Python中的异常和断言
  • java求职学习day32
  • 内存一致性模型(Memory Consistency Model)及其核心难度
  • Archery:一个免费开源的一站式SQL审核查询平台
  • 【中科院宁波材料技术与工程研究所主办】第五届机械自动化与电子信息工程国际学术会议(MAEIE 2025)
  • 政府支持再造视角下A区政府采购数字化发展问题及对策
  • 第三章:新婚
  • python+vue小区物业管理系统设计(源码+文档+调试+基础修改+答疑)
  • Android系统框架知识系列(二十二):Storage Manager Service - Android存储系统深度解析
  • 模板的特化详解
  • AI大模型:(三)1.2 Dify安装
  • nodejs+postgresql 使用存储过程和自定义函数
  • Siemens TIA Portal安装详细教程(附安装包)Siemens TIA Portal V20超详细安装教程
  • 速通ACM省铜第七天 赋源码(Sponsor of Your Problems)
  • 数据流图DFD
  • Netty ChannelHandler
  • 对比基于高斯核的2D热力图与普通Canvas热力图
  • 问题:RuntimeError: cuDNN error: CUDNN_STATUS_NOT_SUPPORTED.
  • 基于Cookie的SSO单点登录系统设计与实现
  • AXI4 协议