首页| 论坛| 消息

标题:QT实时接收数据画图的问题
作者:tttomato
日期:2021-09-14 14:47
内容:

要求开发一个软件,实时接收数据绘图,同时要开启VR程序。
两个分别单独开都没问题,一起连动就会有点卡顿,并且在2-3分钟后程序会闪退。
一开始是用qpaint绘图的,后来听说qcustomplot更好一点,就用了这个。
但用处不大,一旦同步运行,程序依旧会闪退。
但同步运行也是可以运行2-3分钟,也不是一上来就马上闪退。看网上说画图可能比较占资源,但我看了在同步运行的时候内存其实都没满60%,CPU倒是一直在90%以上,到闪退的时候也是,内存没满,CPU也是勉强在95%以下,GPU就更少了。
那这个问题到底出在哪里,画图的代码如下:
void mainwindow::drawData (qreal y)
{
count++;
if(count>100)
{
ui->GLV->xAxis->setRange(count-100,count) //当数据量超过100,坐标图X轴自适应变化
}
double x = count;
ui->GLV->addGraph();
ui->GLV->graph(0)->addData(x,y);//添加数据
ui->GLV->replot();
if(count%200==0) //每画200次,将图清空。
{
ui->GLV->clearGraphs();
..


#1 [liudianwu 09-14 15:01]
大哥,可以先看下自带的demo,你这没画一个点,都添加一个画布啊,我擦!
#2 回 liudianwu 的帖子 [tttomato 09-14 15:21]
liudianwu:大哥,可以先看下自带的demo,你这没画一个点,都添加一个画布啊,我擦! (2021-09-14 15:01) 
那就是说那个addGraph()只需要一次是吗。
我想知道那个clear方法是否能将之前画图占的资源清空。
谢谢
#3 [zhanglyl 09-19 14:20]
后台添加缓冲区接受和处理数据啊,显示部分采用窗口截取显示!
自己在QPainter上绘制吧

回复 发表
主题 版块