QOpenGLWindow 如何调用QPaint,请用完整的C++代码展示
时间: 2023-07-16 17:12:18 浏览: 141
下面是一个简单的示例,展示如何在 QOpenGLWindow 中实现绘图:
```c++
#include <QtGui>
#include <QtOpenGL>
class MyOpenGLWindow : public QOpenGLWindow
{
public:
MyOpenGLWindow(QWidget *parent = nullptr)
: QOpenGLWindow(parent)
{
}
protected:
void initializeGL() override
{
// 初始化OpenGL环境
initializeOpenGLFunctions();
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
}
void resizeGL(int w, int h) override
{
// 当窗口大小发生变化时,更新OpenGL视口
glViewport(0, 0, w, h);
}
void paintGL() override
{
// 清空屏幕
glClear(GL_COLOR_BUFFER_BIT);
// 绘制一个三角形
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex3f(-0.5f, -0.5f, 0.0f);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex3f(0.5f, -0.5f, 0.0f);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex3f(0.0f, 0.5f, 0.0f);
glEnd();
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyOpenGLWindow window;
window.resize(640, 480);
window.show();
return app.exec();
}
```
在上面的代码中,我们重写了 `initializeGL`、`resizeGL` 和 `paintGL` 函数,分别用于初始化OpenGL环境、更新OpenGL视口和绘制图形。在 `paintGL` 函数中,我们使用 OpenGL 的函数来绘制一个简单的三角形。最后,我们创建了一个 MyOpenGLWindow 对象,并将其显示出来。
阅读全文