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

金融图QCPFinancial

QCPFinancial 是 QCustomPlot 中用于绘制金融图表(如蜡烛图/K线图)的核心类。以下是其关键特性的详细说明:

一、主要属性

属性类型说明
dataQSharedPointer<QCPFinancialDataContainer>存储金融数据的数据容器
chartStyleQCPFinancial::ChartStyle设置图表样式(蜡烛图/美国线等)
widthdouble每个数据项的宽度(0-1之间)
twoColoredbool是否使用两种颜色区分涨跌(默认true)
positiveQCPScatterStyle上涨时的样式(颜色、形状等)
negativeQCPScatterStyle下跌时的样式

二、核心方法

1. 数据操作方法

方法参数返回值说明
setDataQSharedPointer<QCPFinancialDataContainer> datavoid设置完整数据集
addDataconst QVector<double>& keys, const QVector<double>& open, const QVector<double>& high, const QVector<double>& low, const QVector<double>& closevoid批量添加数据
addDatadouble key, double open, double high, double low, double closevoid添加单个数据点
dataCount-int返回数据点数量

2. 样式配置方法

方法参数返回值说明
setChartStyleQCPFinancial::ChartStyle stylevoid设置图表类型
setWidthdouble widthvoid设置柱体宽度
setTwoColoredbool enabledvoid启用/禁用双色模式
setPenconst QPen& penvoid设置统一线条颜色
setPositiveconst QPen& penvoid设置上涨颜色
setNegativeconst QPen& penvoid设置下跌颜色

3. 数据查询方法

方法参数返回值说明
getKeyRangebool& foundRange, SignDomain inSignDomain = sdBothQCPRange获取键值范围
getValueRangebool& foundRange, SignDomain inSignDomain = sdBothQCPRange获取数值范围
selectTestconst QPointF& pos, bool onlySelectable, QVariant* details = nullptrdouble选择测试

三、信号列表

信号参数说明
selectionChangedbool selected选中状态改变时触发
selectableChangedbool selectable可选状态改变时触发

四、枚举类型

QCPFinancial::ChartStyle

说明
csOhlc美国线(开盘-高-低-收盘)
csCandlestick蜡烛图(默认)

五、基本使用示例

cpp

// 创建金融图表
QCPFinancial *candlesticks = new QCPFinancial(customPlot->xAxis, customPlot->yAxis);// 设置样式为蜡烛图
candlesticks->setChartStyle(QCPFinancial::csCandlestick);
candlesticks->setWidth(0.5);  // 设置宽度为时间间隔的50%// 设置颜色
candlesticks->setPositive(QPen(Qt::green));
candlesticks->setNegative(QPen(Qt::red));// 添加数据 (key, open, high, low, close)
QVector<double> keys, open, high, low, close;
// ... 填充数据 ...
candlesticks->addData(keys, open, high, low, close);// 连接选择信号
connect(candlesticks, &QCPFinancial::selectionChanged, [](bool selected) {qDebug() << "K线图选择状态改变:" << selected;
});

六、高级技巧

1、自定义工具提示

cpp

connect(customPlot, &QCustomPlot::plottableClick, [](QCPAbstractPlottable *plottable, int dataIndex, QMouseEvent *event) {if (auto financial = qobject_cast<QCPFinancial*>(plottable)) {auto data = financial->data()->at(dataIndex);QToolTip::showText(event->globalPos(), QString("日期: %1\n开盘: %2\n最高: %3\n最低: %4\n收盘: %5").arg(data->key).arg(data->open).arg(data->high).arg(data->low).arg(data->close));}
});

2、动态更新数据

cpp

// 更新特定位置的数据
candlesticks->data()->at(index)->close = newCloseValue;
candlesticks->data()->at(index)->high = qMax(candlesticks->data()->at(index)->high, newCloseValue);
customPlot->replot();

通过以上属性和方法的组合,可以创建高度可定制的金融图表,满足股票、期货等金融数据的可视化需求。

http://www.xdnf.cn/news/757.html

相关文章:

  • Oracle--用户管理
  • 微信小程序上传腾讯云
  • 基于SpringBoot的社区家庭医生在线问诊系统
  • 【笔记】SpringBoot实现图片上传和获取图片接口
  • 【上位机——MFC】消息映射机制
  • 【TeamFlow】3 Rust 与 WebAssembly (Wasm) 深度应用指南
  • JavaScript 版本号比较
  • Matlab PID参数整定和设计
  • UI界面工程,如何使用控制台
  • 101. 对称二叉树
  • 深度学习相关技术
  • python tkinter库窗口的使用
  • Netty使用教程
  • 闭包函数的应用与理解
  • 探索 Model Context Protocol (MCP):它如何影响 AI 的表现?
  • 【android bluetooth 框架分析 02】【Module详解 12】【 BidiQueue、BidiQueueEnd、Queue介绍】
  • QT常见输入类控件及其属性
  • 5 matplotlib样式和颜色设置
  • 脑影像分析软件推荐| GraphVar介绍
  • Java学习笔记(数组,方法)
  • 英语学习4.20
  • 算法题(129):二维前缀和
  • C 语言的未来:在变革中坚守与前行
  • 字符输入验证函数
  • PI0 Openpi 部署(仅测试虚拟环境)
  • 百望山游记,佘太君庙,杨家将的故事
  • 【HDFS入门】HDFS故障排查与案例分析:从日志分析到实战解决
  • Linux 进程控制(自用)
  • centos停服 迁移centos7.3系统到新搭建的openEuler
  • 2025年人工智能指数报告:技术突破与社会变革的全景透视