OSG +QT переключение в полноэкранный режим и обратно
Я интегрирую один osgQt::GLWidget в Qframe и использую шаблон здесь: http://trac.osgeo.org/ossim/browser/trunk/ossimPlanetQt/src/gui/ossimPlanetQtMainWindow.cpp для переключения между полноэкранным режимом и назад. В основном потребляет нажатия клавиш в виджете и устанавливает полный экран оттуда.
У меня также есть потребитель событий в osgViewer::Viewer - osgViewer::WindowSizeHandler, который обрабатывает переключение размера средства просмотра.
Есть ли лучший шаблон для реализации этого?
1 ответ
По сути, то, что вы делаете (или то, что делается в примере), выглядит хорошо. (Обратите внимание, что я предполагаю, что вы ссылаетесь на void ossimPlanetQtMainWindow::on_viewToggleFullScreen_triggered(bool )
)
Тем не менее, в примере, QGLWidget theGLWidget
перераспределяется между tabWidget
а также theFullScreenFrame
, Под Windows, воспитание QGLWidget
приведет к воссозданию QGLContext. (см. документацию QGLWidget
Обходной путь, предложенный документами, состоит в том, чтобы обернуть виджет GL в фиктивный виджет (простой QWidget
) и ответим, что вместо виджета GL.
По моему опыту, это прекрасно работает.