Qt图形图像开发之高性能曲线图模块QCustomplot库详细使用方法与实

2020-03-10 22:03:16刘景俊

运行效果如下:

QCustomplot动态曲线图生成

下图动态曲线是我用传感器采集的,大家可以用一些随机数据来测试

假设图像只显示10个点 第11个点将会把第一个点挤出去 就是一个vector 出栈入栈 里面一直保持10个数据

		//QVector<double> sx_vec,xAxis_vec 存放数据的容器
 	
		//m_chartPoint_counter 计数器 一直增加 来一条数据增加一下 控制x轴前进 实现动态效果
	
		//这时容器里面还没10个点 所有一直向里面存
    if(m_chartPoint_counter < 10)
    {
    	
      sx_vec.append(sx_);
      xAxis_vec.append(m_chartPoint_counter);
	
			//设置范围正好 能显示当前点				
      sx_plot->xAxis->setRange(0,xAxis_vec.at(xAxis_vec.size()-1));
     
    }
    else
    {
    	//容器数据现在是正好10个 把第一个出栈 把第11个入栈 正好还是10个数据
      sx_vec.removeFirst();
      xAxis_vec.removeFirst();
			
			//入栈
      xAxis_vec.append(m_chartPoint_counter);
      sx_vec.append(sx_);
			//设置范围正好 能显示当前点		
      sx_plot->xAxis->setRange(xAxis_vec.at(0),xAxis_vec.at(
                     xAxis_vec.size()-1));
    }
		//设置Y轴坐标系 自动缩放以正常显示所有的数据
    sx_plot->yAxis->rescale(true);
  	//设置数据
    sx_plot->graph()->setData(xAxis_vec,sx_vec);
		//重绘制
    sx_plot->replot();
	//这里必须要一直增加 如果增加到10就不增加 效果就是第10个点一直变化 不会出现动态效果
	m_chartPoint_counter++;

图像数据清空

//图像数据清空
QCPGraph* thresholdY_line;
thresholdY_line->data().data()->clear();

这里只是介绍一些基本的功能 ,一些强大的功能 在 下载的examples里有

本文主要讲解了Qt图形图像开发之高性能曲线图模块QCustomplot库详细使用方法与实例,更多关于QT开发的知识请查看下面的相关链接