使用Qt Creator错误对QGLWidget进行子类化

时间:2013-07-23 23:32:00

标签: qt qt-creator qglwidget

我正在尝试使用Qt创建者创建QGLWidget的简单子类,我使用生成以下代码的Qt Creator向导生成.h和.cpp文件:

viewport.cpp

#include "viewport.h"

Viewport::Viewport(QObject *parent) :
    QGLWidget(parent)
{
}

viewport.h

#ifndef VIEWPORT_H
#define VIEWPORT_H

#include <QGLWidget>

class Viewport : public QGLWidget
{
    Q_OBJECT
public:
    explicit Viewport(QObject *parent = 0);

signals:

public slots:

};

#endif // VIEWPORT_H

我在.pro文件中添加了QT += opengl,它摆脱了大部分错误,但我留下了两个我不明白的地方:

/projects/tree_gen/qt_project/tree_gen-build-desktop-Qt_4_8_4_in_PATH__System__Debug/../tree_gen/viewport.cpp:4: error: invalid conversion from 'QObject*' to 'QWidget*'

/projects/tree_gen/qt_project/tree_gen-build-desktop-Qt_4_8_4_in_PATH__System__Debug/../tree_gen/viewport.cpp:4: error:   initializing argument 1 of 'QGLWidget::QGLWidget(QWidget*, const QGLWidget*, Qt::WindowFlags)'

我没有改变任何东西,只是试图编译Qt给我的任何想法?

1 个答案:

答案 0 :(得分:0)

QGLWidget是一个小部件,它需要QWidget*作为父级,因此最好将这种父级用于您的小部件类:explicit Viewport(QWidget *parent = 0); //don't forget to modify the .cpp too