Hi Clint,<br><br>Thanks for replying. I did the modifications you suggested. But the problem still exists. I can load the data first time. But after I unload this data and try to browse and load a new dataset, I don&#39;t see anything in the QVTKwidget. What might be going wrong here?<br>
<br>Thanks,<br>Ashish<br><br><div class="gmail_quote">On Fri, Nov 20, 2009 at 12:53 PM, Clinton Stimpson <span dir="ltr">&lt;<a href="mailto:clinton@elemtech.com">clinton@elemtech.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
A quick glance at the code shows you&#39;re not hooking up the QVTKWIdget with the<br>
vtkImageViewer2 correctly.<br>
<br>
One way to do it:<br>
vtkwidget = new QVTKWidget(centralwidget);<br>
imgview-&gt;SetupInteractor(vtkwidget-&gt;GetInteractor());<br>
imgview-&gt;SetRenderWindow(vtkwidget-&gt;GetRenderWindow());<br>
<br>
Clint<br>
<div><div></div><div class="h5"><br>
On Friday 20 November 2009 11:21:27 am Ashish Singh wrote:<br>
&gt; any suggestions on this?<br>
&gt;<br>
&gt; ---------- Forwarded message ----------<br>
&gt; From: Ashish Singh &lt;<a href="mailto:asinghmlists@gmail.com">asinghmlists@gmail.com</a>&gt;<br>
&gt; Date: Thu, Nov 19, 2009 at 10:59 AM<br>
&gt; Subject: QVTK issue with vtkImageViewer2<br>
&gt; To: <a href="mailto:vtkusers@vtk.org">vtkusers@vtk.org</a><br>
&gt;<br>
&gt;<br>
&gt; Hi,<br>
&gt;<br>
&gt; I am trying to display each slice from a series of CT scans in a<br>
&gt; QVTKwidget. The QVTKWidget itself is in a QMainWindow with 3 other widgets<br>
&gt; to browse, load and unload the data. I want to be able to display the data<br>
&gt; in QVTKwidget as soon as I hit the load button. I also want to be able to<br>
&gt; unload the data and clear the QVTKwidget as soon as I hit the unload button<br>
&gt; so that I can load a new dataset afterwards.<br>
&gt;<br>
&gt; I can read and display the data fine only the first time. I can also unload<br>
&gt; the data, but after unload when I try to load new data it doesn&#39;t show up<br>
&gt; in my QVTKwidget. Can anyone please tell me what am I missing or doing<br>
&gt; wrong here and how to correct it?<br>
&gt;<br>
&gt; My development environment is:<br>
&gt; Windows XP Pro x64<br>
&gt; Visual Studio 2005<br>
&gt; VTK 5.4.2<br>
&gt; Qt 4.5.0<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Ashish<br>
&gt;<br>
&gt; Here&#39;s the code that I use:<br>
&gt; ----Header file: test.h-----<br>
&gt; #include &lt;QObject&gt;<br>
&gt; #include &lt;QPushButton&gt;<br>
&gt; #include &lt;QLabel&gt;<br>
&gt; #include &lt;QHBoxLayout&gt;<br>
&gt; #include &lt;QVBoxLayout&gt;<br>
&gt; #include &lt;QMainWindow&gt;<br>
&gt; #include &lt;QVTKWidget.h&gt;<br>
&gt; #include &lt;QWidget&gt;<br>
&gt; #include &lt;QString&gt;<br>
&gt; #include &lt;QFileDialog&gt;<br>
&gt; #include &lt;QDir&gt;<br>
&gt; #include &lt;qapplication.h&gt;<br>
&gt; #include &lt;qobject.h&gt;<br>
&gt; #include &lt;QtGui&gt;<br>
&gt;<br>
&gt; #include &lt;vtkDICOMImageReader.h&gt;<br>
&gt; #include &lt;vtkImageViewer2.h&gt;<br>
&gt; #include &lt;vtkRenderWindow.h&gt;<br>
&gt; #include &quot;vtkRenderer.h&quot;<br>
&gt; #include &quot;vtkCornerAnnotation.h&quot;<br>
&gt; #include &quot;vtkImageData.h&quot;<br>
&gt;<br>
&gt;<br>
&gt; using namespace std;<br>
&gt;<br>
&gt; class test : public QObject<br>
&gt; {<br>
&gt;     Q_OBJECT<br>
&gt;<br>
&gt; public:<br>
&gt;     string dirname;<br>
&gt;     vtkDICOMImageReader *reader;<br>
&gt;     vtkImageViewer2 *imgview;<br>
&gt;     vtkImageData *blank;<br>
&gt;<br>
&gt;     QMainWindow *mymainwindow;<br>
&gt;     QWidget *centralwidget;<br>
&gt;     QLabel *mylabel;<br>
&gt;     QPushButton *mypbutton;<br>
&gt;     QPushButton *myloadbutton;<br>
&gt;     QPushButton *myunloadbutton;<br>
&gt;     QVTKWidget *vtkwidget;<br>
&gt;     QHBoxLayout *myhlayout;<br>
&gt;     QVBoxLayout *myvlayout;<br>
&gt;     test(QObject* parent = 0);<br>
&gt;     ~test();<br>
&gt;<br>
&gt;     public slots:<br>
&gt;         void OnLoad();<br>
&gt;         void OnBrowse();<br>
&gt;         void OnUnLoad();<br>
&gt;<br>
&gt; };<br>
&gt;<br>
&gt; -----cpp file: test.cpp-------<br>
&gt; #include &quot;test.h&quot;<br>
&gt;<br>
&gt; test::test(QObject * parent):QObject(parent)<br>
&gt; {<br>
&gt;     reader = vtkDICOMImageReader::New();<br>
&gt;     imgview = vtkImageViewer2::New();<br>
&gt;<br>
&gt;     //create dummy data to create start up blank image<br>
&gt;     blank = vtkImageData::New();<br>
&gt;     blank-&gt;SetDimensions(10, 10, 1);<br>
&gt;     blank-&gt;AllocateScalars();<br>
&gt;     for (int i = 0; i &lt; 10; i++)<br>
&gt;         for (int j = 0; j &lt; 10; j++)<br>
&gt;             blank-&gt;SetScalarComponentFromDouble(i, j, 0, 0, 0);<br>
&gt;     blank-&gt;Update();<br>
&gt;     imgview-&gt;SetInput(blank);<br>
&gt;     imgview-&gt;SetInput(blank);<br>
&gt;     //create dummy data to create start up blank image<br>
&gt;<br>
&gt;     mymainwindow = new QMainWindow();<br>
&gt;     centralwidget = new QWidget(mymainwindow);<br>
&gt;<br>
&gt;     mylabel = new QLabel(centralwidget);<br>
&gt;     mypbutton = new QPushButton(centralwidget);<br>
&gt;     myloadbutton = new QPushButton(centralwidget);<br>
&gt;     myunloadbutton = new QPushButton(centralwidget);<br>
&gt;<br>
&gt;     vtkwidget = new QVTKWidget(centralwidget);<br>
&gt;     vtkwidget-&gt;GetRenderWindow()-&gt;AddRenderer(imgview-&gt;GetRenderer());<br>
&gt;     vtkwidget-&gt;setFixedSize(512,512);<br>
&gt;<br>
&gt;     myhlayout = new QHBoxLayout();<br>
&gt;     myvlayout = new QVBoxLayout();<br>
&gt;<br>
&gt;     //setup UI<br>
&gt;     mylabel-&gt;setText(&quot;Select Dicom Dir&quot;);<br>
&gt;     mypbutton-&gt;setText(&quot;Browse&quot;);<br>
&gt;     this-&gt;connect(this-&gt;mypbutton,SIGNAL(clicked()),this,<br>
&gt; SLOT(OnBrowse()));<br>
&gt;<br>
&gt;     myloadbutton-&gt;setText(&quot;Load&quot;);<br>
&gt;     this-&gt;connect(this-&gt;myloadbutton,SIGNAL(clicked()),this,<br>
&gt; SLOT(OnLoad()));<br>
&gt;<br>
&gt;     myunloadbutton-&gt;setText(&quot;Unload&quot;);<br>
&gt;<br>
&gt; this-&gt;connect(this-&gt;myunloadbutton,SIGNAL(clicked()),this,SLOT(OnUnLoad()))<br>
&gt;;<br>
&gt;<br>
&gt;     myhlayout-&gt;addWidget(mylabel);<br>
&gt;     myhlayout-&gt;addWidget(mypbutton);<br>
&gt;     myhlayout-&gt;addWidget(myloadbutton);<br>
&gt;     myhlayout-&gt;addWidget(myunloadbutton);<br>
&gt;<br>
&gt;     myvlayout-&gt;addLayout(myhlayout);<br>
&gt;     myvlayout-&gt;addWidget(vtkwidget);<br>
&gt;<br>
&gt;     centralwidget-&gt;setLayout(myvlayout);<br>
&gt;     mymainwindow-&gt;setCentralWidget(centralwidget);<br>
&gt;     mymainwindow-&gt;show();<br>
&gt; }<br>
&gt;<br>
&gt; test::~test()<br>
&gt; {<br>
&gt;     reader-&gt;Delete();<br>
&gt;     imgview-&gt;Delete();<br>
&gt;     blank-&gt;Delete();<br>
&gt; }<br>
&gt;<br>
&gt; void test::OnLoad()<br>
&gt; {<br>
&gt;     reader-&gt;SetDirectoryName(dirname.c_str());<br>
&gt;     reader-&gt;Update();<br>
&gt;     imgview-&gt;SetInput(reader-&gt;GetOutput());<br>
&gt;     imgview-&gt;GetRenderer()-&gt;ResetCamera();<br>
&gt;     vtkwidget-&gt;update();<br>
&gt; }<br>
&gt;<br>
&gt; void test::OnUnLoad()<br>
&gt; {<br>
&gt;     imgview-&gt;GetRenderer()-&gt;RemoveAllViewProps();<br>
&gt;     imgview-&gt;GetRenderer()-&gt;ResetCamera();<br>
&gt;     vtkwidget-&gt;update();<br>
&gt; }<br>
&gt;<br>
&gt; void test::OnBrowse()<br>
&gt; {<br>
&gt;     QString indirectory =<br>
&gt; QFileDialog::getExistingDirectory(this-&gt;centralwidget,tr(&quot;Select Input<br>
&gt; Directory&quot;), QDir::currentPath());<br>
&gt;     dirname = indirectory.toStdString();<br>
&gt; }<br>
&gt;<br>
&gt; -----main.cpp---------<br>
&gt; #include &quot;test.h&quot;<br>
&gt; void main(int argc, char *argv[])<br>
&gt; {<br>
&gt;     QApplication app(argc, argv);<br>
&gt;     test *mywin = new test;<br>
&gt;     app.exec();<br>
&gt;<br>
&gt; }<br>
<br>
</div></div></blockquote></div><br>