QChart 绘制静态图/简单图
QChart
从QT5.7开始,社区版本也包含了Qt Charts。QtCharts可以方便的绘制常见的折线图、柱状图、饼图等。
- QtCharts是基于QT的Graphics View架构,其核心组件是:QChartView,QChart.要使用QChart,必须在安装QT时安装QtCharts组件。
QChart 继承关系
QChart使用流程
添加头文件
在.pro文件中添加Qt += charts
在类的头文件中添加:
#include
using namespace QtCharts;
或者
#include
QT_CHARTS_USE_NAMESPACE
创建QChartView
- 主要利用GraphicView升级为QChartView.
- 注意:应现在pro文件夹中添加charts后进行这一步
简单绘图
实例代码
新建一个MainWindow的工程,在ui中添加QChartView,对象名为chartView
main.c省略,mainwindows.h为默认,mainwindows.c的构造函数如下:
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent),ui(new Ui::MainWindow)
{
ui->setupUi(this);
QChart *chart = new QChart;
ui->chartView->setChart(chart);//绑定的接口
chart->setTitle("sample"); //设置图名称
QLineSeries *serie0 = new QLineSeries(chart);//设置父对象,则自动析构
series0->setName("sin");
series0->setUseOpenGL(true);
chart->addSeries(series0);
//修改序列中值
for(double i= 0; i<10;i+=0.1){
series0.append(i,qSin(i));
}
//添加坐标轴,一对坐标轴即可
QValueAxis *axisX = new QValueAxis(chart);
QValueAxis *axisY = new QVlaueAxis(chart);
axisX->setRange(0,10);
axisY->setRange(-2,2);
//添加序列至图中
chart->setAxisX(axisX,series0);
chart->setAxisY(axisY,series0);
}
QLineSeries 和QscatterSeries 使用OpenGL加速
该两类序列可使用OpenGL加速。若使用OpenGL加速,则会在QChartView视图上加了一层显示的QOpenGLWidget,且加速的序列会画在QOpenGLWidget上。
series->setUseOpenGL(true);