[vtkusers] Interactor on vtkWidget
Leonardo M. Ramé
l.rame at griensu.com
Tue Sep 21 10:30:20 EDT 2010
On 2010-09-21 15:25:34 +0100, Jothy wrote:
>
> On Tue, Sep 21, 2010 at 3:20 PM, Leonardo M. Ramé <l.rame at griensu.com>wrote:
>
> > Hi, I created a vtkDistanceWidget, and added an observer to catch the
> > "delete" key on that widget, to be able to delete it from the scene.
> >
> > The problem is that key events are captured for the whole interactor,
> > and not for my specific widget. How can I know what was the active
> > widget at the moment of pressing the delete key?.
> >
> >
> > This is my code:
> >
> > void widgetPickObserver(vtkObject* caller, unsigned long eid, void*
> > clientdata, void *calldata)
> > {
> > qDebug(static_cast<vtkRenderWindowInteractor*>(caller)->GetKeySym());
> > }
> >
> > void myClass::addDistanceWidget()
> > {
> > distanceWidget = vtkDistanceWidget::New();
> > distanceWidget->SetInteractor(this->GetInteractor());
> > distanceWidget->CreateDefaultRepresentation();
> > static_cast<vtkDistanceRepresentation
> > *>(distanceWidget->GetRepresentation())->SetLabelFormat("%-#6.3g mm");
> >
> > vtkSmartPointer<vtkCallbackCommand> Callback =
> > vtkSmartPointer<vtkCallbackCommand>::New();
> > Callback->SetCallback(widgetPickObserver);
> > Callback->SetClientData(distanceWidget);
> >
> > distanceWidget->GetInteractor()->AddObserver(vtkCommand::KeyPressEvent,
> > Callback);
> > distanceWidget->On();
> > }
> >
> >
> > --
> > Leonardo M. Ramé
> > http://leonardorame.blogspot.com
> What I did in my Qt program was - used a toggle button on the toolbar to
> enable and disable the distance widget.
>
> Jothy
Yes, but what if you need more than one distance widgets? how do you
know which one is selected?
--
Leonardo M. Ramé
http://leonardorame.blogspot.com
More information about the vtkusers
mailing list