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.

По моему опыту, это прекрасно работает.

Другие вопросы по тегам