Qt Chart 波形显示一 (波形静态显示)

3 篇文章 0 订阅

Qt5.7 之后集成了Qt Charts模块(参考自:Qt官网) 本人使用的Qt版本是Qt5.9 安装步骤参考(百度经验1 )

 

需要注意的是安装过程中需要勾选 Qt Charts选项,傻瓜式安装即可。

新建Qwidget工程,在.Pro文件中添加:

QT       += charts

 如图:

界面设置如下:

sin,cos,clc对应三个按钮,layout用于显示图表。

代码以做了较详细注解,如下:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QtCharts/QChart>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QLineSeries>
#include <QVector>

using namespace QtCharts;

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
    void Chart_Init(void);


private slots:
    void on_sin_clicked();

    void on_cos_clicked();

    void on_clc_clicked();

private:
    Ui::Widget *ui;
    QLineSeries *series;
    QChart *chart;
    QVector<QPointF> oldData;
    QVector<QPointF> data;
    quint16 count;
};

#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    Chart_Init();

}

Widget::~Widget()
{
    delete ui;
}

void Widget::Chart_Init(void){
    QValueAxis *axisX = new QValueAxis;//X轴
    axisX->setRange(0,10);            //设置X轴范围
    axisX->setTitleText("横坐标X");      //设置X轴标题
    QValueAxis *axisY = new QValueAxis;//定义Y轴
    axisY->setRange(-1,1);           //设置Y轴范围
    axisY->setTitleText("纵坐标Y");      //设置Y轴标题

    series = new QLineSeries;  //创建折线(以折线的形式显示数据)

    chart = new QChart;//创建图表
    chart->addAxis(axisX,Qt::AlignBottom);//把横轴添加到图表
    chart->addAxis(axisY,Qt::AlignLeft);//把纵轴添加到图表

    QChartView *chartview = new QChartView(chart);//创建图表显示

    ui->layout->addWidget(chartview);//将图表显示添加到layout控件
}

//显示正弦波
void Widget::on_sin_clicked()
{
    series->clear();
    for(double i=0.0;i<10.0;i+=0.1){
        series->append(i,sin(i));
    }
    chart->addSeries(series);//把折线添加到图表
}

//显示余弦波
void Widget::on_cos_clicked()
{
    series->clear();
    for(double i=0.0;i<10.0;i+=0.1){
        series->append(i,cos(i));
    }
    chart->addSeries(series);//把折线添加到图表
}

//清除显示
void Widget::on_clc_clicked()
{
    series->clear();
    for(double i=0.0;i<10.0;i+=0.1){
        series->append(i,0);
    }
    chart->addSeries(series);//把折线添加到图表
}

 工程文件参考:工程文件

 

 

 

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值