I've created an application that contains a QVTKWidget linked to a
vtkImageViewer2. Alterations to the vtkImageData before initializing
the vtkImageViewer2 are visible as soon as I call viewer->Render(),
but any changes I make later do not appear until I click inside the
widget. In fact, this happens even if I run the exact same sequence of
methods to make a new vtkImageViewer2 (as below). Is this a result of
the QVTKWidget caching the image data, and if so, how can I make it
update? Thanks!<br>
<br>==================<br><br>  gridData = vtkImageData::New();<br><br>// etc.<br><br>  gridData-&gt;<div id=":114" class="ii gt">SetScalarTypeToFloat();<br>  gridData-&gt;AllocateScalars();<br>  gridData-&gt;GetPointData()-&gt;GetScalars()-&gt;FillComponent(0,0);<br>

<br><br>// The vtkImageData *gridData is modified via calls to SetScalarComponent...<br><br>
  gridData-&gt;SetScalarComponentFromDouble((int)pos[0],(int)pos[1],0,0,intensity);<br><br>  viewer = vtkImageViewer2::New();<br>  viewer-&gt;SetInput(gridData);<br>  viewer-&gt;SetupInteractor(this-&gt;ui-&gt;qvtkWidget-&gt;GetInteractor());<br>

  viewer-&gt;SetRenderWindow(this-&gt;ui-&gt;qvtkWidget-&gt;GetRenderWindow());<br>  viewer-&gt;Render();<br><br>// ... and the modified image is displayed correctly.<br><br>// But if the vtkImageData *gridData is further modified via calls to SetScalarComponent...<br>

<br>  gridData-&gt;SetScalarComponentFromDouble((int)pos[0],(int)pos[1],0,0,intensity);<br><br>
  viewer = vtkImageViewer2::New();<br>  viewer-&gt;SetInput(gridData);<br>  viewer-&gt;SetupInteractor(this-&gt;ui-&gt;qvtkWidget-&gt;GetInteractor());<br>  viewer-&gt;SetRenderWindow(this-&gt;ui-&gt;qvtkWidget-&gt;GetRenderWindow());<br>


  viewer-&gt;Render();<br><br>// ...the new changes are still not visible until I click the image.<br><br>===================<br><br>-Garrett Larson</div>