QChart绘制静态图

QChart

从QT5.7开始,社区版本也包含了Qt Charts。QtCharts可以方便的绘制常见的折线图、柱状图、饼图等。

  • QtCharts是基于QT的Graphics View架构,其核心组件是:QChartView,QChart.要使用QChart,必须在安装QT时安装QtCharts组件。

QChart 继承关系

QGraphicsItem
QGraphicObject
QGraphicWidget
QChart
QPolarQchart

QChart使用流程

添加头文件

在.pro文件中添加Qt += charts
在类的头文件中添加:

#include
using namespace QtCharts;

或者

#include
QT_CHARTS_USE_NAMESPACE

创建QChartView
  • 主要利用GraphicView升级为QChartView.
  • 注意:应现在pro文件夹中添加charts后进行这一步
Created with Raphaël 2.2.0 开始 在ui中的创建GraphicsView 右键GraphicsView,选择promote to -> QChartView 结束
简单绘图
Created with Raphaël 2.2.0 开始 添加QChartView 构建QChart对象 使用setChart为QChartView绑定QChart 创建序列,并添加序列值 创建坐标轴,并将坐标轴和序列添加到QChart中 结束
实例代码

新建一个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);

猜你喜欢

转载自blog.csdn.net/u013894391/article/details/101424470
今日推荐