Skip to content
A proof-of-concept widget for integrating Qt and OpenSceneGraph in a thread-safe manner
C++ CMake
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis.yml Added changelog file Jun 28, 2017
CMakeLists.txt Updated list of contributors. Mar 26, 2018
MainWindow.cpp Rewrote widget to use `QOpenGLWidget` Apr 4, 2015
PickHandler.h Added support for device pixel ratio values in `PickHandler` (issue #3) Jul 26, 2017

Build Status CII Best Practices

QtOSG: combining Qt and OSG in a thread-safe manner

This repository contains a widget based on QOpenGLWidget that is able to wrap a viewer from the OpenSceneGraph library. This makes it possible to combine both toolkits in a thread-safe manner.

Moreover, the widget demonstrates several interaction mechanisms:

  1. Rectangular selection processing
  2. Pick handling
  3. Node file writing (for debug purposes)


  • Linux or MacOS X (see below for a brief discussion on supporting Microsoft Windows)
  • A recent C++ compiler with support for C++11
  • CMake (minimum version 2.8.11)
  • Qt5
  • OpenSceneGraph

What about Microsoft Windows

I am not familiar enough with graphics programming for Microsoft Windows to fully support this as a target platform. In issue 7, it was briefly discussed that some modifications are required for QtOSG to fully compile/work under Microsoft Windows. If you want to target this platform, I would be glad for the help!

Thanks to Martial Tola, support for compiling under Microsoft Windows has been added to the project and I am looking forward to any comments.

Building QtOSG

$ git clone
$ cd QtOSG
$ mkdir build
$ cd build
$ cmake ../
$ make

Additional build options can be configured by issuing ccmake . in the build directory. In particular, you can toggle the following options:

  • WITH_PICK_HANDLER: toggle to compile with/without support for point picking
  • WITH_SELECTION_PROCESSING: toggle to compile with/without support for rectangular selections

Using QtOSG

The demo application merely demonstrates basic usage of the widget. Don't expect too much! Start the application by issuing ./qtosg in the build directory.

The following key bindings are active:

  • d: writes the current scene graph to /tmp/sceneGraph.osg
  • h: resets the view to home
  • s: toggles selection processing (if compiled); if active, hold left mouse button down to draw a selection rectangle; selected objects will be shown on the console

How to contribute

Please see the contribution guidelines for more information and a list of the contributors.


QtOSG uses the MIT licence. Pleas see the file in the main directory of the repository for more information.

You can’t perform that action at this time.