#include #include #include #include #include #include class GLWidget : public QGLWidget { public: GLWidget(QWidget* parent) : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) {} void initializeGL() { glClearColor(0.f, 0.f, 0.f, 1.f); } void paintGL() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(0.0, 0.0, -5.0); GLfloat triangle[] = {0.0, 1.0, -3.0, 1.0, 0.0, -3.0, -1.0, 0.0, -3.0}; glEnableClientState(GL_VERTEX_ARRAY); glColor4f(1.0, 0.0, 0.0, 1.0); glVertexPointer(3, GL_FLOAT, 0, triangle); glDrawArrays(GL_TRIANGLES, 0, 9); glDisableClientState(GL_VERTEX_ARRAY); } void resizeGL(int width, int height) { glViewport(0, 0, (GLint)width, (GLint)height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-5, +5, -5, 5, 0.0, 10.0); glMatrixMode(GL_MODELVIEW); } }; int main(int argc, char* argv[]) { QApplication app(argc, argv); QMainWindow main; QMdiArea mdi(&main); main.setCentralWidget(&mdi); main.show(); QMainWindow sub(&main); mdi.addSubWindow(&sub); GLWidget glw(&sub); sub.setCentralWidget(&glw); sub.show(); mdi.tileSubWindows(); return app.exec(); }