[osg-users] Qt5 QMdiArea

Vincent Majorczyk osgforum at tevs.eu
Tue Aug 18 07:53:01 PDT 2015

Hi Émeric,
thank you for your reply, I forgot to write that I'm trying this on Linux. Maybe it is an incompatibility problem.

> I've added the ViewerWidget class, inheriting from QWidget and
> encompassing the OSG root node, viewer and rendering thread (I'm no
> more using a QTimer) as member attributes.

I think the main difference between my implementation and yours is the use of thread.

> ViewerWidget::createGraphicsWindow creates the osgQt::GraphicsWindowQt
> as in osgviewerQt example.

I didn't change this method.

> ViewerWidget::addViewWidget creates the OSG view, initializes the
> manipulator, scene graph and camera configuration (as in osgviewerMFC
> example),

My class works if I use a QWidget (or a QStackedWidget) as container, but not if I use QMdiArea or QTabWidget. So I doubts the problem come from manipulator, scenegraph or camera configuration.

I would like try with the thread instead of QTimer. What is the library you used (QThread, OpenThread, std/C++11 , pthread, boost ...) ?  How did you proceed? with Qt5 and OSG Threads, the multithreading model doesn't work:

> Qt5 is currently crashing and reporting "Cannot make QOpenGLContext current in a different thread" when the viewer is run multi-threaded, this is regression from Qt4.


Read this topic online here:

More information about the osg-users mailing list