先创建Series,然后再把Series添加到chart中。
创建AXIS添加到Chart,然后再添加到Series中。
chart是在scene中,scene在view中。
绘图只需要控制chart以内的内容就可以,chart不需要中途销毁创建。
-
只画图不需要交互,简单显示图 用 QCHARTVIEW + QCHART
-
需要交互复杂画图 用 SCENE + QCHART + QGRAPHICSVIEW
用第二种交互模式时候CHART不会自动改变大小,要重载resize控制
void CapitalChartView::resizeEvent(QResizeEvent *event)
{
if (scene()) {
scene()->setSceneRect(QRect(QPoint(0, 0), event->size()));
if (m_chart != nullptr)
{
m_chart->resize(event->size());
}
if (m_coordX != nullptr&&m_coordY != nullptr)
{
m_coordX->setPos(m_chart->size().width() / 2 - 200, m_chart->size().height() - 20);
m_coordY->setPos(m_chart->size().width() / 2 + 200, m_chart->size().height() - 20);
}
//foreach(Callout *callout, m_callouts)
// callout->updateGeometry();
}
QGraphicsView::resizeEvent(event);
}
一个VIEW对应一个QCHART , 一个SCENE对应多个QCHART