<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3627" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009>Hi!</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>I am trying to get 
signal and slot work with QVTK. I have 2 threads, one to compute and one to do 
the rendering. When the compute thread sends a signal, I want this one to be 
picked up in order to update the scene. In my visualisation widget I call 
initialView which creates a sphere. The result is that as the compute threads is 
running, the sphere is being rendered. However, When a signal is emited, this 
one is not picked up. If I replace initialView with another member which does 
nothing, the signal is being delivered. So my guess is that the vtkRenderWindow 
is overwritting my original Widget, perhaps&nbsp; with a different eventloop... 
In fact, the window title is even reset to 'Visualisation toolkit - openGL" when 
I use initialView, whereas I get the correct Window title that I set in the 
constructor&nbsp;when I use the empty member... but with nothing in the 
window.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>Could anyone tell me 
what I am doing wrong? </SPAN></FONT><FONT face=Arial size=2><SPAN 
class=259541514-25112009>I guess the best thing is to give some lines of 
codes...</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>Best 
Regards,</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp;&nbsp;&nbsp; 
-Pierre.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009>main.cpp:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#include &lt;QApplication&gt;</FONT></DIV>
<DIV><FONT face=Arial size=2>#include "MyWidget.h"</FONT></DIV>
<DIV><FONT face=Arial size=2>int main(int argc, char* argv[])<BR>{<BR>&nbsp; 
QApplication app(argc, argv);<BR>&nbsp; MyWidget* widget;<BR>&nbsp; widget = new 
MyWidget(argc, argv);<BR>&nbsp; widget-&gt;show();</FONT></DIV>
<DIV><FONT face=Arial><FONT size=2>&nbsp; return app.exec();<BR>}<BR><SPAN 
class=259541514-25112009>-----------------------------------------------------------------------------</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009>MyWidget.h</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>#include 
&lt;QWidget&gt;<BR>#include &lt;QVTKWidget.h&gt;</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>#include 
"computethread.h"</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>class MyWidget : 
public QVTKWidget<BR>{<BR>&nbsp; Q_OBJECT</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009>&nbsp;public:<BR>&nbsp; MyWidget(int argc, char **argv, 
QVTKWidget *parent = 0);<BR>&nbsp; QSize minimumSizeHint() const;<BR>&nbsp; 
QSize sizeHint() const;</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>private 
slots:<BR>&nbsp; void updateView();</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>private:<BR>&nbsp; 
ComputeThread* thread;<BR>&nbsp; void initialView();<BR>&nbsp; void 
initialView2();</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; QVTKWidget 
*vtkwidget;</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>};<BR><SPAN 
class=259541514-25112009>-----------------------------------------------------------------------------</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009>MyWidget.cpp</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=259541514-25112009>MyWidget::MyWidget(int argc, char **argv, QVTKWidget 
*parent) : QVTKWidget(parent)<BR>{</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; // start 
compute thread<BR>&nbsp; thread = new 
ComputeThread(argc,argv);</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; 
thread-&gt;start(); </SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; 
initialView();<BR>&nbsp; setWindowTitle(tr("Visualization Window - 
v0.1"));<BR>&nbsp; resize(400, 300);<BR>&nbsp; connect(thread, 
SIGNAL(computeStuff()), this, SLOT(updateView()));</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>}<BR>void 
MyWidget::initialView2()<BR>{<BR>}<BR>void 
MyWidget::initialView()<BR>{<BR>&nbsp; //create a rendering window and 
renderer<BR>&nbsp; vtkRenderer *ren = vtkRenderer::New();<BR>&nbsp; 
vtkRenderWindow *renderWindow = vtkRenderWindow::New();<BR>&nbsp; 
renderWindow-&gt;AddRenderer( ren );<BR>&nbsp; renderWindow-&gt;SetSize( 500, 
500 );</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; //Create a 
window interactor<BR>&nbsp; vtkRenderWindowInteractor *interactor = 
vtkRenderWindowInteractor::New();<BR>&nbsp; interactor-&gt;SetRenderWindow( 
renderWindow );</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; //create and 
actor and give it ball geometry</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; 
vtkSphereSource* Sphere = vtkSphereSource::New();<BR>&nbsp; 
Sphere-&gt;SetCenter(0.0, 0.0, 0.0);<BR>&nbsp; 
Sphere-&gt;SetRadius(5.0);<BR>&nbsp;<BR>&nbsp; //create a mapper<BR>&nbsp; 
vtkPolyDataMapper *Mapper = vtkPolyDataMapper::New();<BR>&nbsp; 
Mapper-&gt;SetInput(Sphere-&gt;GetOutput());<BR>&nbsp;<BR>&nbsp; // create an 
actor<BR>&nbsp; vtkActor *Actor = vtkActor::New();<BR>&nbsp; 
Actor-&gt;SetMapper(Mapper);<BR>&nbsp; // sphere color blue<BR>&nbsp; 
Actor-&gt;GetProperty()-&gt;SetColor(0,0,1);</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; //assign our 
actor to the renderer<BR>&nbsp; ren-&gt;AddActor(Actor);</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; 
renderWindow-&gt;AddRenderer(ren);</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; //render the 
scene and start the interactor<BR>&nbsp; renderWindow-&gt;Render();<BR>&nbsp; 
interactor-&gt;Start();</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=259541514-25112009>&nbsp; 
vtkwidget-&gt;SetRenderWindow(renderWindow);<BR>&nbsp; 
renderWindow-&gt;Delete();<BR>}<BR></SPAN></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV> <br>
********************************************************************<br>
This email and any attachments are confidential to the intended<br>
recipient and may also be privileged. If you are not the intended<br>
recipient please delete it from your system and notify the sender.<br>
You should not copy it or use it for any purpose nor disclose or<br>
distribute its contents to any other person.<br>
********************************************************************<br>
<br>
</body></HTML>