0

我正在学习一个简单的 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);

 };

有谁知道发生了什么?谢谢!

4

0 回答 0