VS2019+QT5.12.2+提升QGraphicsView+绘制曲线

第一步:打开VS2019创建QT  widgets  application 

,填入程序名字:JiaoCheng_QuXian

VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第1张图片

 VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第2张图片

 

***

 

第二步:操作一个widget

A:打开jiaocheng_quxian.ui 文件,添加一个graphicsView

(重点说明,之前网络上的教程,都是拉一个widget. 可是啊,但是啊,这个玩意已经没有setChart这个成员函数了,所以就不能再拉这个控件了, 我搜索了相关的资料,选了graphicsView)

VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第3张图片

 

 B:提升 graphicsView为:QGszChartView

VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第4张图片

 

 C:点击 ---》添加--》 然后提升

 D,在QT设计师里面 点击保存,然后关闭QT设计师

E:编译

VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第5张图片

 

第三步:处理报错,就是添加 类QGszChartView的头文件 和源文件

A:基类是 public QGraphicsView.主要头文件和源文件名字都是小写的.

VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第6张图片

B:修改大小写

 VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第7张图片

 C:效果如下

VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第8张图片

D: QGraphicsView 这个东西在qgszchartview.h 无法识别,需要添加头文件

//我是:qgszchartview.h
#pragma once
#include //添加这个头文件
class QGszChartView :public QGraphicsView
{
};

 E:添加QGszChartView的构造函数

//我是:qgszchartview.h
#pragma once
#include //添加这个头文件
class QGszChartView :public QGraphicsView
{
public:
	QGszChartView(QWidget* parent = 0);
};

HF:在CPP文件里面实现这个构造函数。(qgszchartview.cpp)

//我是(qgszchartview.cpp)
#include "qgszchartview.h"
QGszChartView::QGszChartView(QWidget* parent)//构造函数
{
	 
}

G:编译后一下。

VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第9张图片

 H:在构造函数里面添加的东西,确保程序是正常运行的,后续可以删掉。

//我是(qgszchartview.cpp)
#include "qgszchartview.h"
#include 
QGszChartView::QGszChartView(QWidget* parent)//构造函数
{
	QMessageBox::warning(0, "test", "test");
}

I:再次编译。然后运行

VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第10张图片

 (至此终于结束了这个提升)

 *********************************************

第三步:添加 组件:QChats.

VS2019+QT5.12.2+提升QGraphicsView+绘制曲线_第11张图片第四步:

A:在jiaocheng_quxian.h 里面添加代码

原本是

#pragma once

#include 
#include "ui_jiaocheng_quxian.h"

class JiaoCheng_QuXian : public QMainWindow
{
    Q_OBJECT

public:
    JiaoCheng_QuXian(QWidget *parent = Q_NULLPTR);

private:
    Ui::JiaoCheng_QuXianClass ui;
};

 添加后

//我是jiaocheng_quxian.h
#pragma once

#include 


#include 
#include 
using namespace QtCharts;



#include "ui_jiaocheng_quxian.h"

class JiaoCheng_QuXian : public QMainWindow
{
    Q_OBJECT

public:
    JiaoCheng_QuXian(QWidget *parent = Q_NULLPTR);

private:
    Ui::JiaoCheng_QuXianClass ui;
};

B:在jiaocheng_quxian.cpp里面添加 曲线代码,就是构建的具体的曲线样子

//我是jiaocheng_quxian.cpp
#include "jiaocheng_quxian.h"

JiaoCheng_QuXian::JiaoCheng_QuXian(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    QSplineSeries* series = new QSplineSeries();
    for (float i = 0; i < 100; i++)
    {
        series->append(i, sin(0.5 * i));
    }
    QChart* chart = new QChart();
    chart->addSeries(series);
    chart->legend()->hide();
    chart->createDefaultAxes();
    chart->setTheme(QChart::ChartThemeDark);

    ui.graphicsView->setChart(chart);//老问题,还是找不到setChart 这个成员函数

}

(待续)

这说明

class QGszChartView :public QGraphicsView

是错误的

就说我们添加的组件,不可以集成自QGraphicsView

你可能感兴趣的:(QT,qt,c++)