zoukankan      html  css  js  c++  java
  • qt外部数据传入实现动态的折线图绘制

                   在嵌入式开发中,实现数据收集与显示很常见,对于希望数据稳定的应用来说,
                   折现图的表现形式很符合条件。
                   本实现是通过qt的signal-slot来实现折线图的动态显示,一个信号的到来,数据添加,然后重绘
                   
              这是其中使用到的一些数据结构

        QList<qreal> xList;//x轴数据链
        QList<qreal> yDrawList;//的y轴数据链
        QList<qreal> yWaList;//WA的y轴数据链
        QList<qreal> yWbList;//WB的x轴数据链
    int Counter;//记录3条折线的第几个点
    
    
        //我画了三条折线
        //下面是实现
    
        //节点数据的添加
    void lineChart::dataInput(int i, int j, int k)//接受数据到达的信号
    {
        int xsize=xList.size();
        if(xsize==21)//测试20个x轴坐标刷新一次图想,
        {
            xList.clear();
            xsize=xList.size();
    
    
        }
        if(xsize>=1)
            {
                xList.insert(xsize,xsize*2);
                yDrawList.insert(xsize,i);
                yWaList.insert(xsize,j);
                yWbList.insert(xsize,k);
                emit pointOver();//重绘信号
    
    
            }
            else{
            xList.insert(xsize,xsize*2);
            yDrawList.insert(xsize,i);
            yWaList.insert(xsize,j);
            yWbList.insert(xsize,k);
    
    
    
    
    
    
    }
    }
    
    //折线绘制函数
      while(Counter < (xList.size()-1))
            {
            painter.setPen(pen);
            painter.drawLine(2*xList.value(Counter)+25,205-yDrawList.value(Counter)*2,
                             2*xList.value(Counter+1)+25,205-yDrawList.value(Counter+1)*2);
            Counter++;
            }
            Counter=0;
            while(Counter < (xList.size()-1))
            {
            painter.setPen(pen1);
            painter.drawLine(xList.value(Counter)*2+25,205-yWaList.value(Counter)*2,
                             xList.value(Counter+1)*2+25,205-yWaList.value(Counter+1)*2);
            Counter++;
            }
            Counter=0;
            while(Counter < (xList.size()-1))
            {
            painter.setPen(pen2);
            painter.drawLine(xList.value(Counter)*2+25,205-yWbList.value(Counter)*2,
                             25+xList.value(Counter+1)*2,205-yWbList.value(Counter+1)*2);
            Counter++;
            }
    
    
    
    
    最后来张效果图
    
    

    http://blog.csdn.net/zhx6044/article/details/7674924

  • 相关阅读:
    DB2 for Z/os Statement prepare
    Foreign key (referential) constraints on DB2 LUW v105
    复制Informational constraints on LUW DB2 v105
    DB2 SQL Mixed data in character strings
    DB2 create partitioned table
    MVC中使用EF的技巧集(一)
    Asp.Net MVC 开发技巧(二)
    Linq使用技巧及查询示例(一)
    Asp.Net MVC 开发技巧(一)
    Asp.Net MVC Identity 2.2.1 使用技巧(八)
  • 原文地址:https://www.cnblogs.com/findumars/p/5994922.html
Copyright © 2011-2022 走看看