1.使用QChartView作为背景板
2.使用QFrame画最高最低线
3.使用QPushButton画开盘结算线
单个点数据如下:
代码如下:
std::vector <QFrame *> m_vMidline; //收集K线中线用于清除
std::vector <QPushButton *> m_vCandle; //收集K线用于清除
QtCharts::QChartView *m_KLineView; //k线主图(k线图与其他图分离)
QCategoryAxis *m_caKLineX = NULL;
QCategoryAxis *m_caKLineY = NULL;
void CKLine::drawKLine(std::vector<P122372::CProtocolHisPoint> vPoints)
{
if(!m_vMidline.empty())
{
for(int i=0; i<m_vMidline.size(); i++)
{
delete m_vMidline[i];
m_vMidline[i] = NULL;
}
m_vMidline.clear();
}
if(!m_vCandle.empty())
{
for(int i=0; i<m_vCandle.size(); i++)
{
delete m_vCandle[i];
m_vCandle[i] = NULL;
}
m_vCandle.clear();
}
if(m_caKLineX)
{
delete m_caKLineX;
m_caKLineX = NULL;
}
m_c