当您调用方法 Start() 时,您正在启动事件循环,这意味着将不会执行以下指令 . 简单地说,在完成VTK管道之后,即在定义了actor,mappers等之后启动事件循环 .
它工作正常,但假设你有PyQt4 . 为了使用PyQt5,我做了一些改动 . 试试这个:
import sys
import vtk
from PyQt5 import QtCore, QtGui
from PyQt5 import Qt
from vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
class MainWindow(Qt.QMainWindow):
def __init__(self, parent = None):
Qt.QMainWindow.__init__(self, parent)
self.frame = Qt.QFrame()
self.vl = Qt.QVBoxLayout()
self.vtkWidget = QVTKRenderWindowInteractor(self.frame)
self.vl.addWidget(self.vtkWidget)
self.ren = vtk.vtkRenderer()
self.vtkWidget.GetRenderWindow().AddRenderer(self.ren)
self.iren = self.vtkWidget.GetRenderWindow().GetInteractor()
# Create source
source = vtk.vtkSphereSourc