#include <GL/glew.h> #include <ImageMagick-6/Magick++.h>翻译成Qt
时间: 2023-09-18 13:10:05 浏览: 101
#include <QtOpenGL/QGLWidget>
#include <QtOpenGL/QGLFunctions>
#include <QtOpenGLExtensions/QGLExtensions>
#include <Magick++.h>
using namespace Magick;
class MyGLWidget : public QGLWidget, protected QGLFunctions
{
Q_OBJECT
public:
MyGLWidget(QWidget *parent = 0);
~MyGLWidget();
protected:
void initializeGL();
void paintGL();
void resizeGL(int width, int height);
private:
GLuint m_textureID;
Image m_image;
};
相关问题
#include <GL/glew.h>转换成Qt
在Qt中使用OpenGL需要先包含Qt的OpenGL模块,即在代码中加入`#include <QtOpenGL>`,然后使用Qt的OpenGL函数和类来代替原本的OpenGL函数和类。
对于`#include <GL/glew.h>`,可以用以下代码替换:
```cpp
#include <QOpenGLFunctions_3_3_Core> // 替换 glew.h
QOpenGLFunctions_3_3_Core gl; // 声明一个OpenGL函数对象
// 初始化OpenGL函数对象
gl.initializeOpenGLFunctions();
```
在使用OpenGL函数时,需要使用`gl.`前缀来调用,例如:
```cpp
glGenBuffers(1, &buffer);
glBindBuffer(GL_ARRAY_BUFFER, buffer);
glBufferData(GL_ARRAY_BUFFER, size, data, GL_STATIC_DRAW);
```
注意,在使用Qt的OpenGL函数和类时,需要先创建OpenGL上下文(context)并将其设置为当前上下文,可以使用`QOpenGLWidget`或`QOpenGLContext`等类来实现。
我的头文件是这样写的#include <stdio.h> #include <math.h> #include <fstream> #include <iostream> #include <string>//getline #include <sstream> #include "stb_image.h" #pragma comment(lib, "openGL32.lib") #pragma comment(lib, "glu32.lib") #pragma comment(lib, "glaux.lib") #include <gl/glaux.h> #include "glew.h" #include "glut.h" #include <vector>,请问如何避免报错gl.h included before glew.h呢
在你的头文件中,应该将 `glew.h` 的引入放在 `gl.h` 的引入之前。因此,你应该将 `glew.h` 的引入语句移到 `gl.h` 的引入语句之前,就像这样:
```
#include <stdio.h>
#include <math.h>
#include <fstream>
#include <iostream>
#include <string>//getline
#include <sstream>
#include "stb_image.h"
#include <gl/glaux.h>
#include <vector>
#include "glew.h"
#include <gl/glut.h>
#pragma comment(lib, "openGL32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glaux.lib")
```
这样就能够避免 `gl.h included before glew.h` 的错误了。
阅读全文