• Qt第三方库----QCustomPlot


    一、软件下载

    下载地址:http://www.qcustomplot.com/index.php/download

    这里推荐下载第一个链接的内容:

    注:这里的第三方库要放在非中文目录下。

     

    二、配置

    (1)、新建工程,并且添加头文件qcustomplot.h和源文件qcustomplot.cpp。

    (2)、在工程pro文件末尾添加printsupport:

    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport

    (3)、进入图形设计界面,添加widget控件,对着所添加的widget区域点击右键,选择“提升为”按钮,提升类名称输入“QCustomPlot”,点击添加。

    (4)、运行程序,如下所示:

    至此,QCustomPlot已经配置完毕。

    注:默认情况下是x:0~4.8,y:0~4.8。

     

    三、绘图

    原理:

    QCustomPlot是一个绘图板的类,它继承于Widget,界面中的Widget类提升为QCustomPlot才能够绘图。

    QCustomPlot中的每一个曲线是一个Graph对象,凡是跟显示数据有关的就对Graph进行操作或调用Graph对象提供的方法。

    一个QCustomPlot里有四个坐标轴,其中xAxis和yAxis就是我们上图看到的x和y坐标轴,还有两个坐标轴xAxis1和yAxis1为上方和右方的x、y坐标,默认隐藏,可以通过程序设计显示。

    步骤:

    (1)、首先将上面提升为QCustomPlot类的容器界面的对象widget重命名为qCustomPlot。

    (2)、在主类Widget构造函数中添加如下代码,即可绘制一个标准标准的y=x^3的曲线。

    Widget::Widget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Widget)
    {
        ui->setupUi(this);
    
        //定义两个可变数组存放绘图的坐标数据
        QVector<double> x(101),y(101);//分别存放x和y坐标的数据,101为数据长度
        //添加数据,我们这里演示y=x^3,为了正负对称,我们x从-10到+10
        for(int i=0;i<101;i++)
        {
            x[i] = i/5 - 10;
            y[i] = x[i] * x[i] * x[i];
        }
    
        //向绘图区域QCustomPlot(从widget提升来的)添加一条曲线
        ui->qCustomPlot->addGraph();
        //添加数据
        ui->qCustomPlot->graph(0)->setData(x,y);
    
        //设置坐标轴标签名称
        ui->qCustomPlot->xAxis->setLabel("x");
        ui->qCustomPlot->yAxis->setLabel("y");
    
        //设置坐标轴显示范围,否则我们只能看到默认的范围
        ui->qCustomPlot->xAxis->setRange(-11,11);
        ui->qCustomPlot->yAxis->setRange(-1100,1100);
        
        //重绘,这里可以不用,官方例子有,执行setData函数后自动重绘
        //我认为应该用于动态显示或者是改变坐标轴范围之后的动态显示,我们以后探索
        //ui->qCustomPlot->replot();
    
    }

    图形如下所示:

    说明:如果设置完x、y取值范围之后,显示结果仍然为默认范围(即x:0~4.8,y:0~4.8),那么原因在于没有把设置代码放在构造函数中(也就是说构造函数调用的仍然是默认的配置),只需要将初始化代码放在构造函数中即可。

  • 相关阅读:
    利用DTrace实时检测MySQl
    改进MySQL Order By Rand()的低效率
    RDS for MySQL查询缓存 (Query Cache) 的设置和使用
    RDS For MySQL 字符集相关说明
    RDS for MySQL 通过 mysqlbinlog 查看 binlog 乱码
    RDS for MySQL Mysqldump 常见问题和处理
    RDS for MySQL Online DDL 使用
    RDS MySQL 表上 Metadata lock 的产生和处理
    RDS for MySQL 如何使用 Percona Toolkit
    北京已成为投融资诈骗重灾区:存好骗子公司黑名单,谨防上当!
  • 原文地址:https://www.cnblogs.com/yedushusheng/p/5520025.html
Copyright © 2020-2023  润新知