简介
QLineSeries类用折线图表示数据。
折线图用于将信息显示为由直线连接的一系列数据点。
示例
通过QLineSeries画正弦。
效果如下:
代码如下:
我们通过继承自QChartView类而无需QChartView成员就可以直接显示QChart对象了。
#ifndef WIDGET_H
#define WIDGET_H
#include <QtCharts>
using namespace QtCharts;
class Widget : public QChartView
{
Q_OBJECT
public:
Widget(QChartView *parent = 0);
~Widget();
};
#endif // WIDGET_H
#include "widget.h"
Widget::Widget(QChartView *parent)
: QChartView(parent)
{
//这里需要一个组织管理QChartView的QChart对象
QChart* chart = new QChart();
//放在QChartView上的图表系列,这里选择QLineSerise
QLineSeries* lineSerise = new QLineSeries();
//初始化QLineSerise对象
for (quint32 i = 0; i < 100; i++)
{
//即初始化线上面的各个点的坐标
lineSerise->append(i, sin(i * 0.6));
}
//然后用QChart对象管理折线图对象QLineSerise
chart->addSeries(lineSerise);
//添加默认的坐标轴
chart->createDefaultAxes();
//最后用QChartView对象显示
setChart(chart);
//抗锯齿
setRenderHint(QPainter::Antialiasing);
}
注意抗锯齿之前的情况:
总结
因为QLineSeries类是通过直线来连接插入坐标点的,所以对于正弦来说,峰值的处理可能不是太过理想。
当然也可以使用QPainter在绘图事件中自己绘制想要的图形。