Hello everyone
I tried to disable right click zoom function through
interactorStyle = slicer.app.layoutManager().sliceWidget('Red').sliceView().sliceViewInteractorStyle()
interactorStyle.SetActionEnabled(interactorStyle.Zoom, False)
but it can also lead to that I cannot observe mouse position change event in CrosshairNode
self.mycrosshairNode = slicer.util.getNode('Crosshair')
self.observationId_rightclick = self.mycrosshairNode.AddObserver(slicer.vtkMRMLCrosshairNode.CursorPositionModifiedEvent, self.mouse_move_event)
def mouse_move_event(self, observer, eventid):
ras = [0, 0, 0]
pos = self.interactor_red.GetEventPosition()
self.mycrosshairNode.GetCursorPositionRAS(ras)
print(ras)
Could you tell me how to only disable right click zoom function?
lassoan
(Andras Lasso)
2
Due to a small bug, you need to re-enable cursor position setting after you disable any action:
interactorStyle = slicer.app.layoutManager().sliceWidget('Red').sliceView().sliceViewInteractorStyle()
interactorStyle.SetActionEnabled(interactorStyle.Zoom, False)
interactorStyle.SetActionEnabled(interactorStyle.SetCursorPosition, True)
We’ll fix this soon in the Slicer Preview Release, se this re-enabling SetCursorPosition
will no longer be necessary.
2 Likes
Thank you for your help, this code works.
ond12
4
Hello, Thank you for this usefull post.
How can i do the same things but for the 3D view ?
cpinter
(Csaba Pinter)
5
I believe like this:
interactorStyle = slicer.app.layoutManager().threeDWidget(0).threeDView().interactorStyle()