我正在学习一个简单的 OpenGL 和 Qt 教程,但我遇到了障碍。这是教程的链接: 链接
在本教程中,您将容器小部件添加到窗口并将其提升为继承 QGLWidget 的类。当我第一次运行该项目时,我在这一行遇到了错误:
MyPanelOpenGL::MyPanelOpenGL(QObject *parent) :
QGLWidget(parent)
{
sides = 3;
radius = 1.0;
}
该错误表明它可以将 QObject 转换为 QWidget。这段代码是 QGLWidget 的构造函数。我将参数更改为 QWidget,但这次在我的 ui.h 文件中出现了另一个错误。错误如下:
/home/computer/build-OpenGLTest-Desktop_Qt_5_0_2_GCC_64bit-Debug/ui_mainwindow.h:64: error: undefined reference to `MyPanelOpenGL::MyPanelOpenGL(QObject*)'
当我更改面板的.h 文件中的实现时,我更改了声明。这是 MyPanelOpenGL.h 文件:
#include <QGLWidget>
class MyPanelOpenGL : public QGLWidget
{
Q_OBJECT
public:
explicit MyPanelOpenGL(QWidget *parent = 0);
protected:
void initializeGL();
void resizeGL(int w, int h);
void paintGL();
private:
int sides;
double radius;
public slots:
void changeSides(int s);
void changeRadius(double r);
};
有谁知道发生了什么?谢谢!