qt QCandlestickSeries详解
1、概述
QCandlestickSeries
是 Qt 图表模块(QtCharts
)中的一个类,用于绘制 K 线图(Candlestick Chart),也称为蜡烛图。K 线图广泛应用于金融领域,用于展示股票、外汇、期货等资产的价格波动情况。每根蜡烛代表一个时间段(如一天、一小时等)的价格波动情况,包含开盘价、最高价、最低价和收盘价。
2、重要方法
QCandlestickSeries(QObject *parent = nullptr)
:创建一个空的QCandlestickSeries
对象。
bool append(QCandlestickSet *set)
:将指定的单个烛台条目添加到烛台图中,并获得其所有权。如果该项为空或已在系列中,则不会附加该项。如果添加成功返回true
,否则返回false
。bool append(const QList<QCandlestickSet *> &sets)
:将指定的烛台条目列表添加到烛台图中,并获得其所有权。如果任何项目为空、已属于系列或在列表中出现多次,则不会附加任何内容。如果所有项目都已成功附加,则返回true
,否则返回false
。void clear()
:永久删除图中的所有条目。bool remove(QCandlestickSet *set)
:从烛台图中删除指定的条目。QList<QCandlestickSet *> sets() const
:返回所有蜡烛的列表。
void setIncreasingColor(const QColor &color)
:设置上涨蜡烛的颜色。QColor increasingColor() const
:返回上涨蜡烛的颜色。void setDecreasingColor(const QColor &color)
:设置下跌蜡烛的颜色。QColor decreasingColor() const
:返回下跌蜡烛的颜色。void setBodyWidth(qreal width)
:设置蜡烛主体的宽度。qreal bodyWidth() const
:返回蜡烛主体的宽度。
3、信号
void countChanged()
:当系列中的烛台项目数量发生变化时发出此信号。void decreasingColorChanged()
:当烛台项减少颜色改变时发出此信号。void doubleClicked(QCandlestickSet *set)
:当指定的烛台项目在图表上被双击时发出此信号。void hovered(bool status, QCandlestickSet *set)
:当鼠标悬停在指定的烛台项目上时发出此信号。当鼠标移到该项目上时,status
变成true
,当鼠标再次移开时,它又变成false
。void increasingColorChanged()
:当烛台项增加颜色变化时发出此信号。
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("Candlestick");// 添加蜡烛数据QCandlestickSet *set1 = new QCandlestickSet();set1->setTimestamp(1);set1->setOpen(100);set1->setHigh(110);set1->setLow(90);set1->setClose(105);series->append(set1);QCandlestickSet *set2 = new QCandlestickSet();set2->setTimestamp(2);set2->setOpen(105);set2->setHigh(115);set2->setLow(100);set2->setClose(110);series->append(set2);// 设置蜡烛颜色series->setIncreasingColor(QColor(Qt::green));series->setDecreasingColor(QColor(Qt::red));// 创建图表并添加系列QChart *chart = new QChart();chart->addSeries(series);chart->setTitle("Candlestick Chart Example");chart->createDefaultAxes();// 显示图表QChartView *chartView = new QChartView(chart);QMainWindow window;window.setCentralWidget(chartView);window.resize(800, 600);window.show();return a.exec();
}
觉得有帮助的话,打赏一下呗。。
需要商务合作(定制程序)的欢迎私信!!