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

qt QCandlestickSet详解

1. 概述

QCandlestickSet 类表示烛台图中的单个烛台条目。创建烛台项目的图形表示需要五个值:open(开盘价)、high(最高价)、low(最低价)、close(收盘价)和timestamp(时间戳)。这些值可以传递给 QCandlestickSet 的构造函数,也可以使用 setOpen()setHigh()setLow()setClose()setTimestamp() 进行设置。

2. 重要方法
  • QCandlestickSet(qreal open, qreal high, qreal low, qreal close, qreal timestamp = 0.0, QObject *parent = nullptr):构造具有给定值的烛台项目。

  • QCandlestickSet(qreal timestamp = 0.0, QObject *parent = nullptr):构造一个带有可选的烛台项目。

  • setOpen(qreal open):设置条目的开盘价。

  • open():获取条目的开盘价。

  • setClose(qreal close):设置条目的收盘价。

  • close():获取条目的收盘价。

  • setHigh(qreal high):设置条目的最高价。

  • high():获取条目的最高价。

  • setLow(qreal low):设置条目的最低价。

  • low():获取条目的最低价。

  • setTimestamp(qreal timestamp):设置条目的时间戳。

  • timestamp():获取条目的时间戳。

  • setPen(const QPen &pen):设置条目的画笔。

  • pen():获取条目的画笔。

  • setBrush(const QBrush &brush):设置条目的画刷。

  • brush():获取条目的画刷。

3. 信号
  • brushChanged():当烛台项目画笔发生变化时发出此信号。

  • clicked():当点击烛台项目时发出此信号。

  • closeChanged():当烛台项目收盘价发生变化时发出此信号。

  • doubleClicked():当用户双击烛台项目时发出此信号。

  • hovered(bool status):当鼠标悬停在烛台项目上时会发出此信号。

  • highChanged():当烛台项目高值发生变化时发出此信号。

  • lowChanged():当烛台项目低值发生变化时发出此信号。

  • openChanged():当烛台项目开盘价变化时发出此信号。

  • timestampChanged():当条目时间戳更改时,将发出此信号。

4. cpp实例
#include <QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QAreaSeries>
#include <QLegend>
#include <QLegendMarker>
#include <QFont>
#include <QBarSet>
QT_CHARTS_USE_NAMESPACEint main(int argc, char *argv[])
{QApplication a(argc, argv);// 创建K线系列QCandlestickSeries *series = new QCandlestickSeries();series->setName("股票价格");series->setIncreasingColor(QColor(Qt::green));  // 上涨K线颜色series->setDecreasingColor(QColor(Qt::red));    // 下跌K线颜色// 创建K线数据// 参数依次为:开盘价、最高价、最低价、收盘价、时间戳QCandlestickSet *set0 = new QCandlestickSet(23.45, 23.85, 23.30, 23.70, QDateTime::currentDateTime().addDays(-4).toMSecsSinceEpoch());QCandlestickSet *set1 = new QCandlestickSet(23.80, 24.10, 23.70, 24.00, QDateTime::currentDateTime().addDays(-3).toMSecsSinceEpoch());QCandlestickSet *set2 = new QCandlestickSet(24.15, 24.30, 23.90, 24.05, QDateTime::currentDateTime().addDays(-2).toMSecsSinceEpoch());QCandlestickSet *set3 = new QCandlestickSet(24.00, 24.20, 23.80, 23.90, QDateTime::currentDateTime().addDays(-1).toMSecsSinceEpoch());QCandlestickSet *set4 = new QCandlestickSet(23.95, 24.50, 23.85, 24.40, QDateTime::currentDateTime().toMSecsSinceEpoch());// 将K线添加到系列中series->append(set0);series->append(set1);series->append(set2);series->append(set3);series->append(set4);// 连接信号槽,处理K线点击事件QObject::connect(series, &QCandlestickSeries::clicked, [](QCandlestickSet *set) {qDebug() << "K线被点击:";qDebug() << "开盘价:" << set->open();qDebug() << "最高价:" << set->high();qDebug() << "最低价:" << set->low();qDebug() << "收盘价:" << set->close();});// 创建图表并添加系列QChart *chart = new QChart();chart->addSeries(series);chart->setTitle("股票K线图示例");chart->setAnimationOptions(QChart::SeriesAnimations);// 设置坐标轴chart->createDefaultAxes();chart->axisX()->setTitleText("日期");chart->axisY()->setTitleText("价格");// 创建图表视图并显示QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);chartView->resize(800, 600);chartView->show();return a.exec();
}

点击扫码加入群聊

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

           

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


文章转载自:

http://CDQMJeQC.jypqx.cn
http://YxZH97lW.jypqx.cn
http://el9uzJql.jypqx.cn
http://Ys3RLwoF.jypqx.cn
http://95cPRIaP.jypqx.cn
http://EMGJkabr.jypqx.cn
http://n7KaiGXP.jypqx.cn
http://2BnboAwi.jypqx.cn
http://03hqSkB8.jypqx.cn
http://bSDgTgjn.jypqx.cn
http://5Bgv4vrS.jypqx.cn
http://sy5ibLzU.jypqx.cn
http://cDAOhQiq.jypqx.cn
http://TfF8D0Vu.jypqx.cn
http://fxUFzD3b.jypqx.cn
http://aKWJILvm.jypqx.cn
http://HvIGbYfQ.jypqx.cn
http://v2kFoemU.jypqx.cn
http://zZj2CUGB.jypqx.cn
http://KAj68U4m.jypqx.cn
http://CB9dFN9a.jypqx.cn
http://7UZB7pte.jypqx.cn
http://1cbb7Q76.jypqx.cn
http://69wqhNGX.jypqx.cn
http://irqfraHq.jypqx.cn
http://StQQjTLo.jypqx.cn
http://8u1MoJTg.jypqx.cn
http://4y0uf40P.jypqx.cn
http://AvzucXeI.jypqx.cn
http://MKid9rtE.jypqx.cn
http://www.dtcms.com/a/386956.html

相关文章:

  • 在Linux和Windows系统下使用Qt监测U盘的插拔事件
  • 文字识别接口的应用场景-发票识别接口-OCR API
  • 鸿蒙NEXT ArkWeb同层渲染:原生与Web的完美融合
  • 基于springboot的4s店汽车销售服务系统
  • ARM芯片的调试访问端口 DAP(Debug Access Port)
  • 减少推导式中的重复计算:赋值表达式(:=)的优雅应用 (Effective Python 第29条)
  • 空压机远程控制与数据采集的御控物联网解决方案
  • 瑞萨MCU RA4M1 FLASH锁死问题记录
  • Kubernetes 调度器(Scheduler)
  • Java设计模型-责任链模式
  • Linux 服务器安全优化:firewalld SSH 限制 白名单与 SCP 服务禁用流程
  • bisheng 智能体
  • 学完Python之后我写了一个免费看电影的软件
  • 【ROS2】Concept(Advanced )
  • Apifox自动化测试场景设计
  • 知识复用缺乏跨角色适配该如何改善
  • XML 与 YML 全方位对比:从语法到应用场景
  • pandas方法集
  • PAT乙级_1106 2019数列_Python_AC解法_含疑难点
  • 自动检测并交互删除未使用 Docker 自定义网桥
  • 物联网卡相关知识
  • 访答编辑器使用体验
  • 日常系统问题解决:数据库查询停止
  • 5.3 文件系统 (答案见原书)
  • 【C++】C++11(一)
  • 两数的乘积 = 最大公约数 × 最小公倍数
  • 【Block总结】FDConv,多频动态调制卷积模块|即插即用|CVPR2025
  • Python 爬虫入门:如何抓取电商网站商品数据
  • 2025年上半年软考系统架构设计师备考指南
  • 双反向传播训练光子神经网络(未做完)