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

qt QAreaSeries详解

1、概述

QAreaSeries 是 Qt Charts 模块中用于绘制面积图的类。面积图通过填充两个数据系列之间的区域(或单个数据系列与基线之间的区域)来可视化数据,常用于展示数据的变化趋势或对比两组数据的差异。它支持两种模式:两个 QLineSeries 之间的区域,以及单个 QLineSeries 与 X 轴之间的区域。

2、重要方法
  • QAreaSeries(QLineSeries *upperSeries, QLineSeries *lowerSeries):构造函数,指定上下边界线。

  • setUpperSeries(QLineSeries *series):设置上边界线。

  • setLowerSeries(QLineSeries *series):设置下边界线。

  • setBrush(const QBrush &brush):设置填充区域的画刷(颜色/渐变)。

  • setPen(const QPen &pen):设置边框线的样式。

  • setOpacity(qreal opacity):设置填充区域的透明度(0~1)。

  • setPointLabelsVisible(bool visible):设置数据点标签是否可见。

  • setPointsVisible(bool visible):设置数据点是否可见,并确定是否在线上绘制这些点。

3、信号
  • borderColorChanged(QColor color):当线条(画笔)颜色变为 color 时,发出此信号。

  • colorChanged(QColor color):当填充(画刷)颜色变为 color 时,发出此信号。

  • clicked(const QPointF &point):当用户在面积图中单击以触发按下 point 时,将发出此信号。

  • doubleClicked(const QPointF &point):当用户通过双击 point 触发面积图中的第一次按下时,将发出此信号。

  • hovered(const QPointF &point, bool state):当用户将鼠标指针悬停在系列上或将其从系列中移开时,将发出此信号。point 显示悬停事件的原点(坐标)。当光标悬停在面积图上时 statetrue。否则为 false

  • pressed(const QPointF &point):当用户按下面积图中由 point 指定的点时,将发出此信号。

  • released(const QPointF &point):当用户释放在面积图中某个 point 上释放按下状态时,会发出此信号。

  • pointLabelsClippingChanged(bool clipping):当数据点标签的剪裁设置 clipping 发生改变时,将发出此信号。

  • pointLabelsColorChanged(QColor color):当数据点标签的颜色改变为 color 时,发出此信号。

  • pointLabelsFontChanged(QFont font):当数据点标签的字体改变为 font 时,发出此信号。

  • pointLabelsFormatChanged(QString format):当数据点标签的格式改变为 format 时,发出此信号。

  • pointLabelsVisibilityChanged(bool visible):当数据点标签的可见属性改变为 visible 时,发出此信号。

4、实例
#include <QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QAreaSeries>
QT_CHARTS_USE_NAMESPACEint main(int argc, char *argv[])
{QApplication a(argc, argv);// 创建两条线系列(用于定义区域)QLineSeries *upperSeries = new QLineSeries();QLineSeries *lowerSeries = new QLineSeries();// 设置上边界线的数据点upperSeries->append(0, 5);upperSeries->append(1, 15);upperSeries->append(2, 10);upperSeries->append(3, 20);// 设置下边界线的数据点lowerSeries->append(0, 0);lowerSeries->append(1, 5);lowerSeries->append(2, 3);lowerSeries->append(3, 10);// 创建 QAreaSeries(区域图)QAreaSeries *areaSeries = new QAreaSeries(upperSeries, lowerSeries);areaSeries->setName("示例区域图");// 设置填充样式QBrush brush(Qt::blue);brush.setStyle(Qt::SolidPattern);areaSeries->setBrush(brush);// 设置边框线样式QPen pen(Qt::darkBlue);pen.setWidth(2);areaSeries->setPen(pen);// 创建图表对象QChart *chart = new QChart();chart->addSeries(areaSeries);chart->setTitle("QAreaSeries 示例");chart->createDefaultAxes();// 设置轴范围QValueAxis *axisX = new QValueAxis();axisX->setRange(0, 3);axisX->setTitleText("X 轴");chart->setAxisX(axisX, areaSeries);QValueAxis *axisY = new QValueAxis();axisY->setRange(0, 20);axisY->setTitleText("Y 轴");chart->setAxisY(axisY, areaSeries);// 创建视图QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);// 显示窗口QMainWindow window;window.setCentralWidget(chartView);window.resize(800, 600);window.show();return a.exec();
}

点击扫码加入群聊

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

           

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


文章转载自:

http://IR99h7vR.sffkm.cn
http://qM6JBtI9.sffkm.cn
http://1KYUDqpp.sffkm.cn
http://pruVqWXZ.sffkm.cn
http://5JJWjxTA.sffkm.cn
http://gWADZr2f.sffkm.cn
http://1DWxV6z1.sffkm.cn
http://6EK0FdTO.sffkm.cn
http://xDv1dP1k.sffkm.cn
http://f1GUxmZY.sffkm.cn
http://JOmt9m0r.sffkm.cn
http://6gEuJQvK.sffkm.cn
http://3jgoz8D3.sffkm.cn
http://xrvzLf72.sffkm.cn
http://WEDNIq87.sffkm.cn
http://vBgAYYEY.sffkm.cn
http://ZF1NYX6H.sffkm.cn
http://i31c98n7.sffkm.cn
http://vNUCroxX.sffkm.cn
http://3Qz9k6fb.sffkm.cn
http://sWQi2rN4.sffkm.cn
http://DOlOvFay.sffkm.cn
http://vK3owDfM.sffkm.cn
http://6Qpg0YWm.sffkm.cn
http://1uzfIRL9.sffkm.cn
http://HI1KYFwW.sffkm.cn
http://c1PxEPSo.sffkm.cn
http://LA19iSnv.sffkm.cn
http://VhYUEcu1.sffkm.cn
http://1IJMpFFJ.sffkm.cn
http://www.dtcms.com/a/375040.html

相关文章:

  • 强化学习笔记(二)多臂老虎机(一)
  • 设计模式--装饰器模式
  • 基于go语言的云原生TodoList Demo 项目,验证云原生核心特性
  • Day01 集合 | 1. 两数之和、874. 模拟行走机器人、49. 字母异位词分组
  • 系统架构设计师备考第17天——企业资源规划(ERP) 典型信息系统架构模型
  • 光子芯片驱动的胰腺癌早期检测:基于光学子空间神经网络的高效分割方法(未做完)
  • 清华大学联合项目 论文解读 | MoTo赋能双臂机器人:实现零样本移动操作
  • 鸿蒙的“分布式架构”理念:未来操作系统的关键突破
  • HarmonyOS一多开发三层架构实战:一次开发,多端部署的终极指南
  • ArkTS(方舟 TypeScript)全面介绍:鸿蒙生态的核心编程语言
  • 【深度学习新浪潮】具身智能中使用到的世界模型是什么?
  • 空间六自由度
  • debian11 ubuntu24 armbian24 apt install pure-ftpd被动模式的正确配置方法
  • shell基础(二)
  • LeetCode 24 两两交换链表中的节点( 迭代与递归)
  • 【分布式架构】Dubbo是什么?能做什么?
  • n1 ARMbian部署Grafana
  • SpringBoot后端基础案例
  • Shiro概述
  • Nginx 服务用户与防盗链配置
  • NV3041A-01芯片屏幕
  • 《京东商品详情爬取实战指南》
  • MySQL数据库的基础
  • 人工智能机器学习——决策树、异常检测、主成分分析(PCA)
  • 企业使用云服务器租用的优势是什么?
  • docker实践(一)
  • args传参
  • Spring Scheduler定时任务实战:从零掌握任务调度
  • NSGA系列多目标优化算法:从理论到实践
  • 从C++开始的编程生活(7)——取地址运算符重载、类型转换、static成员和友元