2013-03-16 4 views
2

Я работаю с Qt5 и должен кодировать что-то вроде простого 3D-редактора. Мне нужно иметь 4 проекционных вида в моем главном окне (для разных сценарных проекций). Я видел пример OpenGLWindow, но было только одно окно, и я не знаю, как его изменить для моей цели.Создание нескольких виджетов OpenGL в QMainWindow

В примере есть следующие строки.

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

Как говорит помощник, QOpenGLContext можно сделать только на QSufrace, которая является прямой базой QWindow.

Итак, как я могу разместить несколько проекций на одном MainWindow.

Мне нужны инструменты, содержащиеся в QOpenGLFunctions.

ответ

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(); 
+0

Хммм, спасибо, я подумал об этой идее. можете ли вы сказать мне, где я могу найти пример для этого? –

+0

пример больше не нужен, я узнал, как это сделать) –