问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Qt 使用 qcustomplot 绘制曲线例子

发布网友 发布时间:2022-12-17 16:41

我来回答

1个回答

热心网友 时间:2023-10-03 05:48

源文件

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include "cwidgetcheckbox.h"

#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

    m_pPlot = new QCustomPlot;

    m_pPlot->setInteractions(QCP::iRangeDrag|QCP::iRangeZoom|QCP::iMultiSelect|QCP::iSelectOther|QCP::iSelectItems);

    m_pPlot->axisRect()->setupFullAxesBox();

    m_pPlot->xAxis->setLabel("时间");

    m_pPlot->yAxis->setLabel("值");

    m_pPlot->xAxis->setRange(0,30);

    m_pPlot->yAxis->setRange(0,100);

    m_pPlot->legend->setVisible(true);

    //m_pPlot->graph( index )->setName(QString::fromStdString(nameVec[0][0]));

    ui->verticalLayout->addWidget( m_pPlot );

    m_id = startTimer(10);

    m_line = m_pPlot->addGraph();

    m_line->setName( tr("test") );

    m_line->setPen(QPen(QColor(255,0,0)));

    m_line->setScatterStyle(QCPScatterStyle::ssDisc);

    m_index = 0;

}

MainWindow::~MainWindow()

{

    delete ui;

}

double MainWindow::getData(double time)

{

    double s = qCos( time * M_PI * 2 ) ;

    return s;

}

void MainWindow::timerEvent(QTimerEvent *event)

{

    int data = qrand()%20;

    m_line->addData(m_index, data);

    //m_line->addData(vecX,m_vetData);

    m_pPlot->replot();

    m_index++;

    if( m_index > 31 )

    {

        m_pPlot->xAxis->setRange(m_index-30,m_index);

    }

    QMainWindow::timerEvent(event);

}

头文件

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QMainWindow>

#include "qcustomplot.h"

namespace Ui {

class MainWindow;

}

class MainWindow : public QMainWindow

{

    Q_OBJECT

public:

    explicit MainWindow(QWidget *parent = 0);

    ~MainWindow();

    double getData(double time);

protected:

    void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;

    //void timerEvent(QTimerEvent *event);

private slots:

private:

    Ui::MainWindow *ui;

    QCPGraph * m_line;

    QCustomPlot * m_pPlot;

    QVector  m_vetData;

    int m_index;

    int m_id;

};

#endif // MAINWINDOW_H

热心网友 时间:2023-10-03 05:48

源文件

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include "cwidgetcheckbox.h"

#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

    m_pPlot = new QCustomPlot;

    m_pPlot->setInteractions(QCP::iRangeDrag|QCP::iRangeZoom|QCP::iMultiSelect|QCP::iSelectOther|QCP::iSelectItems);

    m_pPlot->axisRect()->setupFullAxesBox();

    m_pPlot->xAxis->setLabel("时间");

    m_pPlot->yAxis->setLabel("值");

    m_pPlot->xAxis->setRange(0,30);

    m_pPlot->yAxis->setRange(0,100);

    m_pPlot->legend->setVisible(true);

    //m_pPlot->graph( index )->setName(QString::fromStdString(nameVec[0][0]));

    ui->verticalLayout->addWidget( m_pPlot );

    m_id = startTimer(10);

    m_line = m_pPlot->addGraph();

    m_line->setName( tr("test") );

    m_line->setPen(QPen(QColor(255,0,0)));

    m_line->setScatterStyle(QCPScatterStyle::ssDisc);

    m_index = 0;

}

MainWindow::~MainWindow()

{

    delete ui;

}

double MainWindow::getData(double time)

{

    double s = qCos( time * M_PI * 2 ) ;

    return s;

}

void MainWindow::timerEvent(QTimerEvent *event)

{

    int data = qrand()%20;

    m_line->addData(m_index, data);

    //m_line->addData(vecX,m_vetData);

    m_pPlot->replot();

    m_index++;

    if( m_index > 31 )

    {

        m_pPlot->xAxis->setRange(m_index-30,m_index);

    }

    QMainWindow::timerEvent(event);

}

头文件

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QMainWindow>

#include "qcustomplot.h"

namespace Ui {

class MainWindow;

}

class MainWindow : public QMainWindow

{

    Q_OBJECT

public:

    explicit MainWindow(QWidget *parent = 0);

    ~MainWindow();

    double getData(double time);

protected:

    void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;

    //void timerEvent(QTimerEvent *event);

private slots:

private:

    Ui::MainWindow *ui;

    QCPGraph * m_line;

    QCustomPlot * m_pPlot;

    QVector  m_vetData;

    int m_index;

    int m_id;

};

#endif // MAINWINDOW_H
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在RLC电路中,谐振频率为___同期为___谐振条件为___? 电磁振荡并联 RLC振荡回路的谐振频率与振荡特性 佛手柑水培还是干放 中山市美派电器有限公司怎么样? 成都美派电器有限公司怎么样? 两条不同品牌的DDR3内存条可以一起用吗 驾驶证的牡丹卡多长时间能办下来 新衣服必须用洗衣液洗才能去甲醛吗? 梦见逛街被偷抢 2024年买什么品牌的运动男鞋比较好? 如何在粉笔上买公考教材 杨浦区高中学校排名 上海杨浦区重点高中有哪些 上海杨浦区高中排名 够钟死心了,,这首粤语歌叫什么名字 刚开始学英语应该怎么学比较好 《够钟》周柏豪 歌词最经典的一句是什么? 够钟歌词谐音翻译(够钟歌词) professional的汉语是什么意思 宋庆龄几几年死的? 宋庆龄的国籍和事迹? 苏暖暖厉衍琛是哪部小说中的人物 动森怎么收藏作者 世界前500大学排名 世界大学世界排名 2022年11月esi分学科排名 肉丝炝锅面条家常做法 家常肉丝炝锅面条怎么做 哈士奇幼仔好养吗?不会买回来没养几天就死了吧?请教高人 刚出生的哈士奇好养吗 哈士奇小时候容易养活吗? 网红高泽宇个人资料 梁汉文的个人资料? 月夜忆舍弟这首诗的大意 叶丽仪个人资料 叶丽仪个人简介 6岁孩子喜欢撒谎该怎么去引导他 6岁孩子喜欢撒谎该家长的教育方法 华为ie浏览器打开建行闪退 一个手机如何同时登录两个? 陶伟个人资料 陶伟个人简介 诛仙手游拍卖行在哪里 诛仙手游金币从哪得 怎么在一台手机上同时绑定两个 平字是什么结构的字 平字是哪种结构的字 一招恢复蓝牙耳机声音 牌牌琦个人资料简介 牌牌琦个人介绍 牌牌琦为什么这么火 牌牌琦的成名说明什么 酸木瓜放几天会坏掉? 炸萝卜丸子需要焯水吗 炸萝卜丸子之前,多加哪一步才正确,炸出的萝卜丸子更香更酥脆呢? 绿湖国际城怎么样?好不好?值不值得买? 康乃馨是什么时候开花的