我正在尝试使用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给我的任何想法?
答案 0 :(得分:0)
QGLWidget是一个小部件,它需要QWidget*
作为父级,因此最好将这种父级用于您的小部件类:explicit Viewport(QWidget *parent = 0); //don't forget to modify the .cpp too