第一步:打开VS2019创建QT widgets application
,填入程序名字:JiaoCheng_QuXian
***
第二步:操作一个widget
A:打开jiaocheng_quxian.ui 文件,添加一个graphicsView
(重点说明,之前网络上的教程,都是拉一个widget. 可是啊,但是啊,这个玩意已经没有setChart这个成员函数了,所以就不能再拉这个控件了, 我搜索了相关的资料,选了graphicsView)
B:提升 graphicsView为:QGszChartView
C:点击 ---》添加--》 然后提升
D,在QT设计师里面 点击保存,然后关闭QT设计师
E:编译
第三步:处理报错,就是添加 类QGszChartView的头文件 和源文件
A:基类是 public QGraphicsView.主要头文件和源文件名字都是小写的.
B:修改大小写
C:效果如下
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:编译后一下。
H:在构造函数里面添加的东西,确保程序是正常运行的,后续可以删掉。
//我是(qgszchartview.cpp)
#include "qgszchartview.h"
#include
QGszChartView::QGszChartView(QWidget* parent)//构造函数
{
QMessageBox::warning(0, "test", "test");
}
I:再次编译。然后运行
(至此终于结束了这个提升)
*********************************************
第三步:添加 组件:QChats.
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