<div dir="ltr">Whenever I click the distance button it create a new widget and places in the active render window and able to manipulate independently. But the only problem is when I want to delete anyone, all goes off!<br>
<br>I don&#39;t know if you want to use multiple distance widget in a single render window.<br><br><br>Jothy<br><br><div class="gmail_quote">On Tue, Sep 21, 2010 at 3:30 PM, Leonardo M. Ramé <span dir="ltr">&lt;<a href="mailto:l.rame@griensu.com">l.rame@griensu.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div></div><div class="h5">On 2010-09-21 15:25:34 +0100, Jothy wrote:<br>
&gt;<br>
&gt; On Tue, Sep 21, 2010 at 3:20 PM, Leonardo M. Ramé &lt;<a href="mailto:l.rame@griensu.com">l.rame@griensu.com</a>&gt;wrote:<br>
&gt;<br>
&gt; &gt; Hi, I created a vtkDistanceWidget, and added an observer to catch the<br>
&gt; &gt; &quot;delete&quot; key on that widget, to be able to delete it from the scene.<br>
&gt; &gt;<br>
&gt; &gt; The problem is that key events are captured for the whole interactor,<br>
&gt; &gt; and not for my specific widget. How can I know what was the active<br>
&gt; &gt; widget at the moment of pressing the delete key?.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; This is my code:<br>
&gt; &gt;<br>
&gt; &gt; void widgetPickObserver(vtkObject* caller, unsigned long eid, void*<br>
&gt; &gt; clientdata, void *calldata)<br>
&gt; &gt; {<br>
&gt; &gt;  qDebug(static_cast&lt;vtkRenderWindowInteractor*&gt;(caller)-&gt;GetKeySym());<br>
&gt; &gt; }<br>
&gt; &gt;<br>
&gt; &gt; void myClass::addDistanceWidget()<br>
&gt; &gt; {<br>
&gt; &gt;  distanceWidget = vtkDistanceWidget::New();<br>
&gt; &gt;  distanceWidget-&gt;SetInteractor(this-&gt;GetInteractor());<br>
&gt; &gt;  distanceWidget-&gt;CreateDefaultRepresentation();<br>
&gt; &gt;  static_cast&lt;vtkDistanceRepresentation<br>
&gt; &gt; *&gt;(distanceWidget-&gt;GetRepresentation())-&gt;SetLabelFormat(&quot;%-#6.3g mm&quot;);<br>
&gt; &gt;<br>
&gt; &gt;  vtkSmartPointer&lt;vtkCallbackCommand&gt; Callback =<br>
&gt; &gt; vtkSmartPointer&lt;vtkCallbackCommand&gt;::New();<br>
&gt; &gt;  Callback-&gt;SetCallback(widgetPickObserver);<br>
&gt; &gt;  Callback-&gt;SetClientData(distanceWidget);<br>
&gt; &gt;<br>
&gt; &gt;  distanceWidget-&gt;GetInteractor()-&gt;AddObserver(vtkCommand::KeyPressEvent,<br>
&gt; &gt; Callback);<br>
&gt; &gt;  distanceWidget-&gt;On();<br>
&gt; &gt; }<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Leonardo M. Ramé<br>
&gt; &gt; <a href="http://leonardorame.blogspot.com" target="_blank">http://leonardorame.blogspot.com</a><br>
<br>
&gt; What I did in my Qt program was - used a toggle button on the toolbar to<br>
&gt; enable and disable the distance widget.<br>
&gt;<br>
&gt; Jothy<br>
<br>
</div></div>Yes, but what if you need more than one distance widgets? how do you<br>
know which one is selected?<br>
<font color="#888888"><br>
--<br>
</font><div><div></div><div class="h5">Leonardo M. Ramé<br>
<a href="http://leonardorame.blogspot.com" target="_blank">http://leonardorame.blogspot.com</a><br>
</div></div></blockquote></div><br></div>