QChart的系列(QChartSeries)和点(QValue)类。以下是一个简单的例子,它演示了如何使用QChart动态绘制曲线。
1)头文件
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
QT_CHARTS_USE_NAMESPACE
2)值写入QLineSeries
我们创建一个QLineSeries对象,该对象表示一系列的数据点。我们可以使用append()方法向该系列添加新的数据点。
QLineSeries *series = new QLineSeries();
series->append(0, 6);
series->append(2, 4);
series->append(3, 8);
series->append(7, 4);
series->append(10, 5);
3)创建QChart对象,添加坐标轴
建一个QChart对象,并将上述系列添加到该图表中。我们还可以设置图表的标题和轴标签
QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("Dynamic curve");
chart->setAxisXLabel("Time");
chart->setAxisYLabel("Value");
4)创建QChartView
创建一个QChartView对象,并将图表添加到该视图中。我们还可以设置视图的渲染方式
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
5)QChartView显示到窗口
将QChartView添加到主窗口中,以便用户可以查看图表
QWidget *window = QApplication::desktop()->windowHandle();
window->setCentralWidget(chartView);
6)完整例子
#include <QtWidgets/QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLineSeries *series = new QLineSeries();
series->append(0, 6);
series->append(2, 4);
series->append(3, 8);
series->append(7, 4);
series->append(10, 5);
QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("Dynamic curve");
chart->setAxisXLabel("Time");
chart->setAxisYLabel("Value");
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
QWidget *window = QApplication::desktop()->windowHandle();
window->setCentralWidget(chartView);
window->resize(400, 300);
window->show();
return a.exec();
}