在QMainWindow中创建几个OpenGL小部件

时间:2013-03-16 13:36:20

标签: opengl qt5 qwidget

我使用Qt5,必须编写简单的3D编辑器。我需要在主窗口中有4个投影视图(用于不同的场景投影)。 我看到OpenGLWindow示例,但只有一个窗口,我不知道如何为我的目的修改它。

示例中有下一行。

class OpenGLWindow : public QWindow, protected QOpenGLFunctions { ........ private: QOpenGLContext *m_context; }

正如助理所说,QOpenGLContext只能在QSufrace上绘制,QSufrace是QWindow的直接基础。

那么,我如何在一个MainWindow上放置几个投影视图。

我需要QOpenGLFunctions中包含的工具。

1 个答案:

答案 0 :(得分:1)

您只需要一个QOpenGLContext。绘制多个视图通常是这样完成的:

//Top Left
glViewport (0, windowHeight/2, windowWidth/2, windowHeight/2);
draw();

//Top Right
glViewport (windowWidth/2, windowHeight/2, windowWidth/2, windowHeight/2);
draw();

//Bottom Right
glViewport (windowWidth/2, 0, windowWidth/2, windowHeight/2); 
draw();

//Bottom Left
glViewport (0, 0, windowWidth/2, windowHeight/2);
draw();