QtCharts小知识:如何把曲线显示到控件上

QtCharts在5.7免费之后,笔者开始尝试使用,以取代Qwt。但在初学使用时,想把曲线显示到MainWindon控件中,还是有些困扰,可能是Qwt用多了,潜意识并把QChart与QwtPlot对应。本文举例说明如何把QChart曲线显示到界面中的容器QWidget上。

QtCharts绘制曲线用到的几个类

类名描述
QChartView用于显示曲线
QChart相当于QwtPlot,图表框架
QSplineSeries相当于QwtPlotCurve,曲线,有多种类型

 
1. QSplineSeries用来加载一个坐标集,构成曲线的点集,所有设置或修改曲线的操作均在此类进行;
2. QChart创建一个图标框,有标题、坐标轴、图例等,通过addSeries加入QSplineSeries ,即可实现含曲线的图表;
3. QChartView 是一个容器,用来显示QChart 图表。

代码示例

1. 创建一个继承QChart的类MChar

using namespace QtCharts;

class MChart : public QChart
{
public:
    MChart();

private:
    QSplineSeries *series = new QSplineSeries();//创建一个曲线为私有变量,用于加载点集

public:
    void setCurve(double *xarr,double *yarr,int length); //便于操作,重写函数用于绘制图谱
};

2. 显示曲线

double simuXs[5],simuYs[5]; //创建模拟点集
for(int i=0;i<5;i++)
{
    simuXs[i]=i;
    simuYs[i]=0.8*i;
}
chart->setCurve(simuXs,simuYs,5);//加载点集,构成曲线(直线)

QChartView *chartView = new QChartView(chart);//声明QChartView 并创建实例,加载chart

QGridLayout *baseLayout = new QGridLayout(); //便于显示,创建网格布局

baseLayout->addWidget(chartView, 1, 0);
ui->widChart->setLayout(baseLayout); //显示到QWidget控件

这里写图片描述

3. 小结

  1. 把点集加载到QSplineSeries,QSplineSeries::append函数;
  2. 把QSplineSeries赋给QChart,QChart::addSeries函数;
  3. 把QChart给QChartView用于显示,QChartView构建函数,或QChartView::setChart函数
  • 11
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值