Well, <br><br>In order to delete a widget, one has to pick it. How do you implement picking? Once picking is done, deleting is easy. Coz, if there are multiple distance wizards, key events of each n every distance widgets will be executed and all of them will be deleted..<br>
<br>Do you have any other technique to pick a widget? or atleast indicate that among set of widgets, this widget i need to delete.<br><br>Regards<br>Rakesh Patil<br><br><div class="gmail_quote">On Tue, Sep 21, 2010 at 8:18 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;">Well, maybe. The distance widget is just an example, in my app I want to<br>
add distance widgets, angle widgets and also &quot;text&quot; widgets, to let the<br>
user annotate a Dicom Image, and in some cases, the user would want to<br>
use more than one instance of those widgets.<br>
<div><div></div><div class="h5"><br>
<br>
On 2010-09-21 15:46:19 +0100, Jothy wrote:<br>
&gt; Whenever I click the distance button it create a new widget and places in<br>
&gt; the active render window and able to manipulate independently. But the only<br>
&gt; problem is when I want to delete anyone, all goes off!<br>
&gt;<br>
&gt; I don&#39;t know if you want to use multiple distance widget in a single render<br>
&gt; window.<br>
&gt;<br>
&gt;<br>
&gt; Jothy<br>
&gt;<br>
&gt; On Tue, Sep 21, 2010 at 3:30 PM, Leonardo M. Ramé &lt;<a href="mailto:l.rame@griensu.com">l.rame@griensu.com</a>&gt;wrote:<br>
&gt;<br>
&gt; &gt; On 2010-09-21 15:25:34 +0100, Jothy wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &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><br>
&gt; &gt; &gt;wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Hi, I created a vtkDistanceWidget, and added an observer to catch the<br>
&gt; &gt; &gt; &gt; &quot;delete&quot; key on that widget, to be able to delete it from the scene.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; The problem is that key events are captured for the whole interactor,<br>
&gt; &gt; &gt; &gt; and not for my specific widget. How can I know what was the active<br>
&gt; &gt; &gt; &gt; widget at the moment of pressing the delete key?.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; This is my code:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; void widgetPickObserver(vtkObject* caller, unsigned long eid, void*<br>
&gt; &gt; &gt; &gt; clientdata, void *calldata)<br>
&gt; &gt; &gt; &gt; {<br>
&gt; &gt; &gt; &gt;  qDebug(static_cast&lt;vtkRenderWindowInteractor*&gt;(caller)-&gt;GetKeySym());<br>
&gt; &gt; &gt; &gt; }<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; void myClass::addDistanceWidget()<br>
&gt; &gt; &gt; &gt; {<br>
&gt; &gt; &gt; &gt;  distanceWidget = vtkDistanceWidget::New();<br>
&gt; &gt; &gt; &gt;  distanceWidget-&gt;SetInteractor(this-&gt;GetInteractor());<br>
&gt; &gt; &gt; &gt;  distanceWidget-&gt;CreateDefaultRepresentation();<br>
&gt; &gt; &gt; &gt;  static_cast&lt;vtkDistanceRepresentation<br>
&gt; &gt; &gt; &gt; *&gt;(distanceWidget-&gt;GetRepresentation())-&gt;SetLabelFormat(&quot;%-#6.3g mm&quot;);<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;  vtkSmartPointer&lt;vtkCallbackCommand&gt; Callback =<br>
&gt; &gt; &gt; &gt; vtkSmartPointer&lt;vtkCallbackCommand&gt;::New();<br>
&gt; &gt; &gt; &gt;  Callback-&gt;SetCallback(widgetPickObserver);<br>
&gt; &gt; &gt; &gt;  Callback-&gt;SetClientData(distanceWidget);<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;  distanceWidget-&gt;GetInteractor()-&gt;AddObserver(vtkCommand::KeyPressEvent,<br>
&gt; &gt; &gt; &gt; Callback);<br>
&gt; &gt; &gt; &gt;  distanceWidget-&gt;On();<br>
&gt; &gt; &gt; &gt; }<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt; Leonardo M. Ramé<br>
&gt; &gt; &gt; &gt; <a href="http://leonardorame.blogspot.com" target="_blank">http://leonardorame.blogspot.com</a><br>
&gt; &gt;<br>
&gt; &gt; &gt; What I did in my Qt program was - used a toggle button on the toolbar to<br>
&gt; &gt; &gt; enable and disable the distance widget.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Jothy<br>
&gt; &gt;<br>
&gt; &gt; Yes, but what if you need more than one distance widgets? how do you<br>
&gt; &gt; know which one is selected?<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>
&gt; &gt;<br>
<br>
</div></div>--<br>
<div class="im">Leonardo M. Ramé<br>
<a href="http://leonardorame.blogspot.com" target="_blank">http://leonardorame.blogspot.com</a><br>
</div><div><div></div><div class="h5">_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
</div></div></blockquote></div><br>