#include #include #include #include #include #include class MyGLWidget : public QOpenGLWidget, protected QOpenGLFunctions { protected: void initializeGL() { initializeOpenGLFunctions(); glClearColor(1.0f, 0.0f, 0.0f, 1.0f); } void paintGL() { glClear(GL_COLOR_BUFFER_BIT); } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); app.setObjectName("Main app"); QMainWindow mw; mw.setObjectName("Main window"); mw.setDockOptions(mw.dockOptions() | QMainWindow::GroupedDragging); QLabel central("I'm the central widget"); central.setObjectName("Central label"); mw.setCentralWidget(¢ral); QDockWidget dw1("Dock Widget 1", &mw); dw1.setObjectName("Dock widget 1"); QLabel dl1("Dock label 1"); dl1.setObjectName("Dock label 1"); dw1.setAllowedAreas(Qt::AllDockWidgetAreas); dw1.setWidget(&dl1); mw.addDockWidget(Qt::LeftDockWidgetArea, &dw1); QDockWidget dw2("Dock Widget 2", &mw); dw2.setObjectName("Dock widget 2"); MyGLWidget glw; glw.setObjectName("MyGLWidget"); dw2.setAllowedAreas(Qt::AllDockWidgetAreas); dw2.setWidget(&glw); mw.addDockWidget(Qt::LeftDockWidgetArea, &dw2); // Force the dock widget to become a native widget dw1.winId(); dw2.setFloating(true); mw.adjustSize(); mw.show(); return app.exec(); }