We are about to begin on a project that requires us to have floating and transparent widgets over VTK render-window output. About a year back, we had wanted to provide something similar to VTK Designer 2. We wanted users to have the ability to load UI (created using Qt Designer) directly on the VTK output window. At that time (you can follow the thread here) we were unable to come up with something satisfactory.

With the recent changes in Qt, it is now possible for us to have vtkRenderWindow within QGraphicsView. Infact we can now have vtkRenderWindow paint on to a QGLWidget viewport of QGraphicsView. Thats exactly what the vtkQtGraphicsViewRenderWindow class allows us to do.

We are about to begin on a project that requires us to have floating and transparent widgets over VTK render-window output. About a year back, we had wanted to provide something similar to VTK Designer 2. We wanted users to have the ability to load UI (created using Qt Designer) directly on the VTK output window. At that time (<a href=”http://www.vtk.org/pipermail/vtkusers/2008-October/097685.html”>you can follow the thread here</a>) we were unable to come up with something satisfactory.

With the recent changes in Qt, it is now possible for us to have vtkRenderWindow within QGraphicsView. Infact we can now have vtkRenderWindow paint on to a QGLWidget viewport of QGraphicsView. Thats exactly what the vtkQtGraphicsViewRenderWindow class allows us to do.

public:
vtkQtGraphicsViewRenderWindow(QWidget* parent = 0);
~vtkQtGraphicsViewRenderWindow();
….
};</pre>
Since vtkQtGraphicsViewRenderWindow is a subclass of both QGraphicsView and vtkRenderWindow,
- we can add any QGraphicsItem to its scene.
- we can use it as a drop-in replacement for vtkRenderWindow.

For example, take a look at the code below.
<pre>vtkRenderer* CreateVTKPipeline()
{
vtkRenderer* renderer = vtkRenderer::New();

Whats cooler about the above program is that we can move and resize the translucent <code>QCalendarWidget</code> – and have the background VTK scene updated!

You can checkout a copy of the class and test program from here:
<a href=”https://svn2.hosted-projects.com/vcreatelogic/VCLTools/vtkQtGraphicsViewRenderWindow”>https://svn2.hosted-projects.com/vcreatelogic/VCLTools/vtkQtGraphicsViewRenderWindow</a>
Username: anonymous
Password: anonymous