#QT(QCharts绘制曲线)

1.IDE:QTCreator


2.实验:绘制曲线图表


3.记录:


4.代码

pro

QT       += core gui
#加入以下代码引入charts
QT +=charts
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

//加入以下两行代码
#include <QtCharts>
QT_CHARTS_USE_NAMESPACE

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

//创建私有曲线
private:
    QChartView *chartview;
    QChart *chart;
    void CreateChartFunc();   //创建图表的函数
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setWindowTitle("图表案例分析");
    CreateChartFunc();     //调用此函数实现图表绘制功能
}

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

//创建图表函数
void MainWindow::CreateChartFunc()
{
    //创建图表
    chartview=new QChartView(this);
    chart=new QChart();
    chart->setTitle("sin()/cos()图表测试");
    chartview->setChart(chart);   //添加chart到chartview库
    this->setCentralWidget(chartview);

    //创建曲线序列
    QLineSeries *series1=new QLineSeries();
    QLineSeries *series2=new QLineSeries();
    series1->setName("sin曲线");
    series2->setName("cos曲线");
    chart->addSeries(series1);
    chart->addSeries(series2);

    //通过序列添加数值
    qreal t=0,y1,y2,intv=0.1;
    for(int i=0;i<100;i++)
    {
        y1=qSin(t);
        series1->append(t,y1);
        y2=qCos(t);
        series2->append(t,y2);
        t=t+intv;
    }
    //创建坐标轴
    QValueAxis *axisX=new QValueAxis();   //X轴
    axisX->setRange(0,10);
    axisX->setTitleText("time(secs)");

    QValueAxis *axisY=new QValueAxis();   //Y轴
    axisY->setRange(-2,2);
    axisY->setTitleText("values");

    chart->setAxisX(axisX,series1);
    chart->setAxisY(axisY,series1);

    chart->setAxisX(axisX,series2);
    chart->setAxisY(axisY,series2);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值