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

金融图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();

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

相关文章:

  • mac监控linux上mysql性能(Grafana+Prometheus+mysqld_exporter)
  • VSCode PIO使用Jlink SWD烧录Stm32
  • 【C++初阶】第15课—模版进阶
  • 进程与线程:01 CPU管理的直观想法
  • 股票分析技术指标【RSV、KDJ】
  • 【Ollama:本地LLM工具】
  • windows服务器及网络:论如何安装(虚拟机)
  • 驱动开发硬核特训 · Day 15:电源管理核心知识与实战解析
  • 基于javaweb的SpringBoot儿童爱心管理系统设计与实现(源码+文档+部署讲解)
  • go语言对http协议的支持
  • 神经网络与模型训练过程笔记
  • PyTorch 深度学习实战(39):归一化技术对比(BN/LN/IN/GN)
  • 提示词设计:动态提示词 标准提示词
  • Android Studio 中 Drawable 详细全解
  • 计算机视觉cv入门之答题卡自动批阅
  • linux 搭建 dvwa 渗透测试环境
  • mysql的5.7版本与8.0版本的差异与兼容性
  • 从零创建 Docker 镜像
  • Django 使用教程
  • 【RabbitMQ | 第2篇】RabbitMQ 控制台实现消息路由 + 数据隔离
  • 复旦大学史地学系在北碚
  • 青海玉树州杂多县发生4.6级地震,震源深度10千米
  • 文化中国行|1500年水镇枫泾有座丁聪美术馆
  • 收藏家尤伦斯辞世,曾是中国当代艺术的推手与收藏者
  • 2025年福建省文旅经济发展大会召开
  • 刘国梁:奥运会乒乓球项目增至六金,国乒机遇与挑战并存