<html><head></head><body>Hi,<br>
<br>
For starters, I have read the thread on this issue:<br>
http://www.vtk.org/pipermail/vtkusers/2008-November/098242.html<br>
<br>
However I managed to get vtkImageViewer2 working inside a QVTKWidget, with one glitch however. The
sample code is printed at the bottom of the screen.<br>
The way I got this to work relies on the order in which calls to Render and SetRenderWindow are
made. First I render the image viewer by calling vtkImageViewer2::Render, after that I attach the
image viewer render window to the QVTKWidget. This works, but because I call render first a
separate render window is created and then (after the call to QVTKWidget::SetRenderWindow)
reparented to the QVTKWidget. This happens really fast, so I guess I could live with it. But it
keeps me wondering what I should do to have it functioning properly. Any advice on how to
circumvent or fix vtkImageViewer2 would be welcome.<br>
<br>
best,<br>
Jeroen<br>
<br>
<br>
#include <vtkRenderer.h><br>
#include <vtkRenderWindow.h><br>
#include <vtkImageViewer2.h><br>
#include <vtkRenderWindowInteractor.h><br>
#include <vtkPNGReader.h><br>
<br>
#include <QVTKWidget.h><br>
<br>
#include <QApplication><br>
#include <QMainWindow><br>
#include <QStatusBar><br>
<br>
int main ( int argc, char **argv )<br>
{<br>
QApplication app(argc,argv);<br>
<br>
const char* fileName = argv[1];<br>
<br>
QMainWindow w;<br>
w.statusBar()->showMessage(fileName);<br>
<br>
QVTKWidget vtkWidget;<br>
vtkWidget.setAutomaticImageCacheEnabled(false);<br>
w.setCentralWidget(&vtkWidget);<br>
<br>
vtkPNGReader *reader1 = vtkPNGReader::New ();<br>
reader1->SetFileName(fileName);<br>
reader1->Update ();<br>
<br>
vtkImageViewer2 *viewer1 = vtkImageViewer2::New ();<br>
viewer1->SetInput(reader1->GetOutput());<br>
viewer1->SetupInteractor(vtkWidget.GetInteractor());<br>
viewer1->Render ();<br>
viewer1->SetRenderWindow(vtkWidget.GetRenderWindow());<br>
<br>
w.show ();<br>
<br>
app.exec ();<br>
<br>
viewer1->Delete ();<br>
reader1->Delete ();<br>
}<br>
<br>
<br>
<div><font size="2"></font> </div></body></html>