I want to remove all observers in interactor, but it do not work. My code is:
from PyQt5.QtWidgets import *
import sys, os
import vtk
from vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
def mouseMoveEvent(iren, event):
print('move')
class MyWin(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
self.setLayout(layout)
self.vtkWidget = QVTKRenderWindowInteractor()
layout.addWidget(self.vtkWidget)
self.ren = vtk.vtkRenderer()
self.vtkWidget.GetRenderWindow().AddRenderer(self.ren)
interactor = self.vtkWidget.GetRenderWindow().GetInteractor()
interactor.Initialize()
interactor.RemoveAllObservers()
interactor.AddObserver('MouseMoveEvent', mouseMoveEvent)
interactor.Start()
self.imageViewer = vtk.vtkImageViewer2()
self.imageViewer.SetupInteractor(interactor)
self.imageViewer.SetRenderWindow(self.vtkWidget.GetRenderWindow())
img = vtk.vtkDICOMImageReader()
img.SetFileName('C:\\Users\\MLoong\\Desktop\\dicom_data\\Chang Cheng\\TOF\\IM_0174')
img.Update()
self.imageViewer.SetInputData(img.GetOutput())
self.imageViewer.Render()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWin()
window.show()
app.exec_()
Is there anything wrong with my code?