0

在 Qt 中使用 OpenGL 的项目中,我在受保护的方法 initializeGL() 中使用了语句

 qglClearColor(qtPurple.dark());

在构建项目中发生以下错误:

 ‘qtPurple’ was not declared in this scope
 ‘qglClearColor’ was not declared in this scope

包含的文件是:

 #include <QtGui>
 #include <QtOpenGL>
 #include <QtGui/QColor>

在 .pro 文件中存在

QT       += core gui, opengl

导致这些错误的错误在哪里?

4

2 回答 2

2

QGLClearColor是 的非静态成员QGLWidget。所以首先你必须包含<QGLWidget>到你的小部件头文件并从 QGLWidget 继承你的小部件。然后您将能够在您的小部件的方法中调用它。您会收到was not declared in this scope错误,因为qglClearColorQGLWidget范围内。

或者,您可以将其称为小部件对象的常规方法。

什么是qtPurple?似乎它不是Qt的一部分。

于 2013-01-19T08:10:18.213 回答
1
  1. 添加#include <QtOpenGL/QGLWidget>你的头文件。你的类应该继承QGLWidget

  2. 好像你没有声明变量qtPurple,所以检查你的头文件,如果不存在,只需声明它[像这样:QColor qtPurple;]。

于 2013-01-19T08:10:00.060 回答