• 4210阅读
  • 5回复

[提问]为什么不能在.h文件中声明QChartView的指针, 怎么回事? [复制链接]

上一主题 下一主题
离线y1363386323
 

只看楼主 倒序阅读 楼主  发表于: 2016-12-03
最近在做一个项目,用到了QChartView图表,可在用时发现了一个问题,就是QChartView不能在.h文件中声明。详情如下:
mainWindow.h 文件下:
QChartView  *chartView;

mainWindow.cpp 文件下:
chartView=new QChartView;
this->setCentralWidget(chartView);
这种情况编译不通过

////////////////////////////////////////////////////////////////////////////////////////////

mainWindow.cpp 文件下:
QChartView  *chartView=new QChartView;
this->setCentralWidget(chartView);
这种情况编译通过了


请问怎么回事?为什么不能在mainWindow.h 文件下进行声明QChartView  *chartView的指针


离线johnyork

只看该作者 1楼 发表于: 2016-12-03
没有提供编译错误信息,没法确定问题。

个人估计你是不是没在mainwindow.h中正确包含QChartView的头文件哦?
离线y1363386323

只看该作者 2楼 发表于: 2016-12-03
回 johnyork 的帖子
johnyork:没有提供编译错误信息,没法确定问题。
个人估计你是不是没在mainwindow.h中正确包含QChartView的头文件哦? (2016-12-03 18:15) 

包含了的,你偿试写下就知道了
离线y1363386323

只看该作者 3楼 发表于: 2016-12-03
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class QChartView;

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

    QChartView *chartView;
};

#endif // MAINWINDOW_H


--------------------------------------------------------------------------------------------------

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

#include <QChartView>
using namespace QtCharts;

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

    chartView=new QChartView;
    this->setCentralWidget(chartView);
}

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


--------------------------------------------------------------------------------


离线andyqi2017

只看该作者 4楼 发表于: 2017-12-23
没有声明使用命名空间,在包含头文件之后加一行
QT_CHARTS_USE_NAMESPACE
就好了
离线andyqi2017

只看该作者 5楼 发表于: 2017-12-23
虽然题主应该早就解决这个问题了,但还是要回复一下以供后来者参考。
快速回复
限100 字节
 
上一个 下一个