我在Qframe中集成了一个osgQt :: GLWidget,并使用这里的模式:http://trac.osgeo.org/ossim/browser/trunk/ossimPlanetQt/src/gui/ossimPlanetQtMainWindow.cpp在全屏模式和后退模式之间切换。基本上消耗小部件中的按键并从那里设置全屏。
我在osgViewer :: Viewer中也有一个事件使用者 - osgViewer :: WindowSizeHandler处理查看器大小切换。
有没有更好的模式来实现这个?
答案 0 :(得分:2)
基本上,你做的(或者,在例子中做了什么)似乎很好。 (请注意,我假设您引用void ossimPlanetQtMainWindow::on_viewToggleFullScreen_triggered(bool )
)
但是,在示例中,QGLWidget theGLWidget
在tabWidget
和theFullScreenFrame
之间进行了重新分配。在Windows下,重新显示QGLWidget
将导致重新创建QGLContext。 (见QGLWidget documentation
文档建议的解决方法是将GL小部件包装在虚拟小部件(简单QWidget
)中,并重新表示而不是GL小部件。
根据我的经验,这很好用。