在5.7版本以后,QChart是免费的.
在本节实现的是折线图.
首先用到的三个类;
1: QLineSeries
A line chart is used to show information as a series of data points connected by straight lines
一个直线图形通过一系列的数据点连接
2: QChart
他的作用就好比一个画布,Qlineseries是在它上面显示.继承自QGraphicsWidget .
Inherits: |
3:QChartView
这个,看名字就知道是显示.
工程文件:
QT += charts
SOURCES += \
main.cpp
target.path = $$[QT_INSTALL_EXAMPLES]/charts/barchart
INSTALLS += target
源文件:
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QAbstractAxis>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//将一系列数据存入道serial.
QLineSeries *serial=new QLineSeries();
QList<QPointF>list;list<<QPointF(0,1)<<QPointF(1,4)<<QPointF(3,5);
list.append(QPointF(4,6));
list.append(QPointF(5,6));
list.append(QPointF(6,8));
list.append(QPointF(7,6));
list.append(QPointF(8,10));
list.append(QPointF(9,2));
serial->append(list);
//初始化画布
QChart *chart=new QChart;
chart->addSeries(serial);
//设置默认坐标,
chart->createDefaultAxes();
chart->setTitle("hou_nan"); //这句你可以去掉试一试,代码生成会出现一个小矩形.
chart->legend()->hide();// clear up bar
//以动画的方式显示,显示的一瞬间是动态的
chart->setAnimationOptions(QChart::SeriesAnimations);
QChartView *view=new QChartView(chart);
//这个应该不用说的,消除锯齿
view->setRenderHint(QPainter::Antialiasing);
QMainWindow w;
w.setCentralWidget(view);
w.setFixedHeight(400);
w.setFixedWidth(450);
w.show();
return a.exec();
}