我是靠谱客的博主 顺心小鸽子,最近开发中收集的这篇文章主要介绍Qt QCustomPlot使用记录Qt QCustomPlot使用记录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

头图

Qt QCustomPlot使用记录

​ 此文仅记录在使用Qt QCustomPlot中遇到的问题以及大致使用流程。Qt QCustomPlot详细教程推荐大家看这里。

​ 还有一个写的更好的,可以看这里

​ 目前我的应用场景比较简单,就是采集原始数据,显示波形就可以,每分钟30帧*4路数据。采集完了保存到数据库。


文章目录

  • Qt QCustomPlot使用记录
    • 怎么用
    • 卡怎么办
      • 定时刷新
      • 开启OpenGL 3D加速
        • glut库支持
          • 库文件包含问题
        • 切屏屏闪
    • GLUT 懒人包
    • QCustomPlot懒人包

关键字: QCustomPlotQtOpenGL关键字4关键字5

怎么用

​ 这个也是要看个人整体项目了,我这个就是一个小工具,目前没有什么构架,也没有啥要求,所以直接就在Creator 里面整了一个QWidget,直接提升为QCustomPlot。如下图所示。名字还没有处理,之前用是QChart,但是技术不行,实现起来效果太卡,而且使用折线,设置颜色总是失败,所以最终还是切换到QCustomPlot。后期应该会对QCustomPlot做更多的探索,因为项目也得画曲线。

image-20220407114212676

​ 这就等于我们在代码中创建了一个QCustomPlot对象了,可以直接使用的。

卡怎么办

​ 在单条线测试的时候,流畅的一逼,但是当我创建4条曲线的时候,就发现还是会卡。所以有了一下内容。

定时刷新

​ 开始的时候,我是只要有数据触发,我就刷新界面并跟新横轴范围,发现很卡,所以我使用了定时刷新,也就是用一个定时器来定时重绘界面。

开启OpenGL 3D加速

​ 这里又要触发两个新坑,一个是需要glut库支持,一个是切屏时候屏幕闪烁。一个一个来。

glut库支持

​ 这个直接下载官方的库,在Pro文件中引入即可解决,如下:

LIBS += -L./-lglut
-lOpengl32 
-lglu32
库文件包含问题

​ 这个问题是我在另一个项目中使用发现了问题,在我包含库使用隐式链接的时候,会报兼容错误。必须使用显式链接。即LIBS += -L./T_Lib/ glut.lib

image-20220408100026368

参考链接:为 MinGW 安装 GLUT

切屏屏闪

​ 这个也是百度到的,但是时间有点旧,不知道链接去哪里了。

解决办法就是在我们的qcustomplot.cpp文件中,找到一个函数void QCPPaintBufferGlFbo::draw(QCPPainter *painter) const函数,我在得899行,如下图所示:

image-20220407131534303

在代码painter->drawImage(0, 0, mGlFrameBuffer->toImage());之前加上一下代码:

  if(QOpenGLContext::currentContext() != mGlContext.data()) {
      mGlContext.data()->makeCurrent(mGlContext.data()->surface());
  }

image-20220407131647510

​ 这里本来想复现一下现象,结果发现注释掉也不复现了。找一之前版本的情况吧。

GLUT 懒人包

CSDN分流

QCustomPlot懒人包

CSDN分流


ustomPlot懒人包

CSDN分流


博客签名2021

最后

以上就是顺心小鸽子为你收集整理的Qt QCustomPlot使用记录Qt QCustomPlot使用记录的全部内容,希望文章能够帮你解决Qt QCustomPlot使用记录Qt QCustomPlot使用记录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部