4

我在 Qframe 中集成了一个 osgQt::GLWidget 并在此处使用该模式:http ://trac.osgeo.org/ossim/browser/trunk/ossimPlanetQt/src/gui/ossimPlanetQtMainWindow.cpp 在全屏模式之间切换然后回来。基本上消耗小部件中的击键并从那里设置全屏。

我在 osgViewer::Viewer - osgViewer::WindowSizeHandler 中也有一个事件使用者,它处理查看器大小切换。

有没有更好的模式来实现这个?

4

1 回答 1

2

基本上,您所做的(或示例中所做的)似乎很好。(请注意,我假设您指的是void ossimPlanetQtMainWindow::on_viewToggleFullScreen_triggered(bool )

但是,在示例中, QGLWidgettheGLWidgettabWidget和之间重新设置了父级theFullScreenFrame。在 Windows 下,重新设置 aQGLWidget将导致重新创建 QGLContext。(参见QGLWidget 文档

文档建议的解决方法是将 GL 小部件包装在一个虚拟小部件(一个简单的QWidget)中,并重新设置它而不是 GL 小部件。

以我的经验,这很好用。

于 2012-11-13T10:37:58.637 回答