A simple QChart drawing program

Environment configuration

insert image description here

Implementation code

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


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    
    
    ui->setupUi(this);
    createChart();
}

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

void MainWindow::createChart()
{
    
    
    //创建图表
    QChartView *chartView = new QCharView(this);//创建ChartView
    QChar *chart  = new QChar(); //创建Chart
    chart->setTitle("简单函数曲线");
    chartView->setChart(chart);//Chart添加到ChartView
    this->setCentralWidget(chartView);
    //创建折线序列
    QLineSeries *series0 = new QLineSeries();
    QLineSeries *series1 = new QLineSeries();
    series0->setName("Sin曲线");
    series1->setName("cos曲线");
    chart->addSeries(series0);//序列添加到图表
    chart->addSeries(series1);
    //序列添加数值
    qreal t=0,y1,y2,intv=0.1;
    int cnt = 100;
    for(int i=0;i<cnt;i++){
    
    
        y1 = qSin(t); //+qrand();
        series0->append(t,y1);
        y2 = qSint(t+20);
        series1->append(t,y2);
        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("value");

    chart->setAxisX(axisX,series0);//为序列设置坐标轴
    chart->setAxisY(axisY,series0);//

    chart->setAxisX(axisX,series1);//为序列设置坐标轴
    chart->setAxisY(axisY,series1);//
}

Result display

insert image description here

Guess you like

Origin blog.csdn.net/weixin_39458727/article/details/125580899