Dear friends,<div><br></div><div>I'm trying to make an application that should be able to summon a separate 3D graphics window from its main window. As for the UI design, I've chosen QT 4 in cooperation with VTK. Despite being familiar with the simpleview qvtkWidget example, I haven't been able to use qvtkwidget in my QT application, at least not the way I'm used to work with QWidgets. Here go the options I've tried:<br clear="all">
<div><br></div><div>- qvtkWidget alone as separate window -> crash. While I can create a QWidget object as a separate window, I can't do the same with qvtkwidget.</div><div>- qvtkWidget inserted into the layout manager of a separate QWidget, which is created to be a separate window -> crash. If I do not insert it into the layout, the QWidget displays just fine. </div>
<div><br></div><div>The code I use for this later option is as follows:</div><div><br></div><div>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span><span style="color:#800000">qvtkWidget</span><span style="color:#c0c0c0"> </span>=<span style="color:#c0c0c0"> </span><span style="color:#808000">new</span><span style="color:#c0c0c0"> </span><span style="color:#800080">QVTKWidget</span>();</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span><span style="color:#800000">window</span><span style="color:#c0c0c0"> </span>=<span style="color:#c0c0c0"> </span><span style="color:#808000">new</span><span style="color:#c0c0c0"> </span><span style="color:#800080">QWidget</span>(<span style="color:#808000">this</span>,<span style="color:#c0c0c0"> </span><span style="color:#800080">Qt</span>::<span style="color:#800080">Window</span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span><span style="color:#800000">qvtkWidget</span>->resize(<span style="color:#000080">640</span>,<span style="color:#000080">384</span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><<span style="color:#800080">vtkLight</span>><span style="color:#c0c0c0"> </span>light<span style="color:#c0c0c0"> </span>=<span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><<span style="color:#800080">vtkLight</span>>::New();</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span>light-><span style="font-style:italic">SetFocalPoint</span>(<span style="color:#c0c0c0"> </span><span style="color:#000080">0.21406</span><span style="color:#c0c0c0"> </span>,<span style="color:#c0c0c0"> </span><span style="color:#000080">1.5</span><span style="color:#c0c0c0"> </span>,<span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#c0c0c0"> </span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span>light-><span style="font-style:italic">SetPosition</span>(<span style="color:#c0c0c0"> </span><span style="color:#000080">8.3761</span><span style="color:#c0c0c0"> </span>,<span style="color:#c0c0c0"> </span><span style="color:#000080">4.94858</span><span style="color:#c0c0c0"> </span>,<span style="color:#c0c0c0"> </span><span style="color:#000080">4.12505</span><span style="color:#c0c0c0"> </span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0">        </span>VTK_CREATE(<span style="color:#800080">vtkConeSource</span>,<span style="color:#c0c0c0"> </span>cone);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0">        </span>cone->SetHeight(<span style="color:#c0c0c0"> </span><span style="color:#000080">3.0</span><span style="color:#c0c0c0"> </span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0">        </span>cone->SetRadius(<span style="color:#c0c0c0"> </span><span style="color:#000080">1.0</span><span style="color:#c0c0c0"> </span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span>cone->SetResolution(<span style="color:#c0c0c0"> </span><span style="color:#000080">50</span><span style="color:#c0c0c0"> </span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0">        </span>VTK_CREATE(<span style="color:#800080">vtkPolyDataMapper</span>,<span style="color:#c0c0c0"> </span>coneMapper);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span>coneMapper->ImmediateModeRenderingOn();</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span>coneMapper->SetInputConnection(<span style="color:#c0c0c0"> </span>cone->GetOutputPort()<span style="color:#c0c0c0"> </span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0">        </span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0">        </span>VTK_CREATE(<span style="color:#800080">vtkActor</span>,<span style="color:#c0c0c0"> </span>coneActor);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span>coneActor->SetMapper(coneMapper);</pre>
<pre style="margin-top:0px;margin-bottom:0px"></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span>VTK_CREATE(<span style="color:#800080">vtkRenderer</span>,<span style="color:#c0c0c0"> </span>renderer);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span>renderer->SetBackground(<span style="color:#000080">0</span>,<span style="color:#c0c0c0"> </span><span style="color:#000080">0</span>,<span style="color:#c0c0c0"> </span><span style="color:#000080">0</span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span>renderer->AddLight(light);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span>renderer->AddActor(coneActor);</pre>
<pre style="margin-top:0px;margin-bottom:0px"></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"><br></span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span><span style="color:#800000">qvtkWidget</span>-><span style="font-style:italic">GetRenderWindow</span>()-><span style="font-style:italic">AddRenderer</span>(renderer);</pre>
<pre style="margin-top:0px;margin-bottom:0px"></pre>
<pre style="margin-top:0px;margin-bottom:0px"><font color="#c0c0c0"><br></font></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:#c0c0c0"> </span><span style="color:#800000">window</span>->layout()->addWidget(<span style="color:#800000">qvtkWidget</span>);</pre></div><div>
<br></div><div>I'm using Mac OS X 10.6, with QT 4 and VTK 5.6.1. The code, as you might guess, mimics the simpleview example. </div><div><br></div><div>Any clues?</div><div><br></div><div>Thanks for your time,</div><div>
<br></div><div>Jon</div><div><br></div>-- <br><div>Dr. Jon Agirre</div>Postdoctoral Scientist - Protein and<br>Virus X-ray Crystallography Group<br>Biophysics Unit (CSIC-UPV/EHU)<br>+0034946013357<br>
</div>