Я написал следующий код, который импортирует и показывает модель vtk, и использовал QTimer (), чтобы попытаться обновить фон.
Я хочу постоянно менять цвет фона, независимо от того, есть ли окно взаимодействие. Однако в настоящее время окно обновляется один раз при открытии окна, а затем только после нажатия кнопки. Я основал свой код на этой ветке , с которой мне пришлось работать в классах.
Я был бы признателен за любые советы о том, как исправить это, чтобы постоянно обновлять фон.
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.vtkWidget = QVTKRenderWindowInteractor()
self.ren = vtk.vtkRenderer()
self.vtkWidget.GetRenderWindow().AddRenderer(self.ren)
self.vtkWidget.GetRenderWindow().GetInteractor().Initialize()
self.setCentralWidget(self.vtkWidget)
self.model_file = 'newpivot.stl'
# Create source
self.source = vtk.vtkSTLReader()
self.source.SetFileName(self.model_file)
self.source.Update()
actor, self.ren = self.updateBackground()
self.ren.AddActor(actor)
self.ren.ResetCamera()
timer = QTimer(self)
timer.timeout.connect(self.interpolationModel)
timer.start(100)
def updateBackground(self):
self.ren.SetBackground(random.random(), random.random(), random.random())
## Some other code
return actor, self.ren