2012-11-02 29 views
3

我正在將一個osgQt :: GLWidget集成到Qframe中,並使用此處的模式:http://trac.osgeo.org/ossim/browser/trunk/ossimPlanetQt/src/gui/ossimPlanetQtMainWindow.cpp在全屏模式和後退之間切換。基本上消耗小部件中的擊鍵並從那裏設置全屏。OSG + QT切換到全屏幕並返回

我也有一個事件消費者在osgViewer :: Viewer - osgViewer :: WindowSizeHandler處理查看器大小切換。

有沒有更好的模式來實現這一點?

回答

2

基本上,你做什麼(或者,在這個例子中做了什麼)似乎很好。 (請注意,我假設你是指void ossimPlanetQtMainWindow::on_viewToggleFullScreen_triggered(bool)

然而,在本例中,QGLWidget來繪圖theGLWidgettabWidgettheFullScreenFrame之間重設父。在Windows下,重新設置QGLWidget將導致重新創建QGLContext。 (見QGLWidget documentation

由文檔提出的解決辦法是包裝在一個虛擬插件的GL窗口小部件(一個簡單的QWidget),並重新設置父級是代替GL部件。

根據我的經驗,這工作正常。

+0

謝謝,你的提示真的幫了我。 – helsinki