显示样式
代码
class MainApp(QMainWindow, main_ui): # 主操作界面
# 定义构造方法
def __init__(self):
QMainWindow.__init__(self)
self.setupUi(self)
self.init_vtk_view()
# 初始化vtk视图区域
def init_vtk_view(self):
# 在之前创建的view_widget上添加vtk控件
self.vtk_vertical_layout = QVBoxLayout(self.view_widget)
self.vtk_widget = QVTKRenderWindowInteractor(self.view_widget)
self.vtk_vertical_layout.addWidget(self.vtk_widget)
# 1.创建RenderWindow窗口
self.render_window = self.vtk_widget.GetRenderWindow()
# 2.创建render
self.renderer = vtk.vtkRenderer()
self.renderer.SetBackground(1.0, 1.0, 1.0) # 设置页面底部颜色值
self.renderer.SetBackground2(0.1, 0.2, 0.4) # 设置页面顶部颜色值
self.renderer.SetGradientBackground(1) # 开启渐变色背景设置
self.render_window.AddRenderer(self.renderer)
self.render_window.Render()
# 3.设置交互方式
self.iren = self.render_window.GetInteractor() # 获取交互器
self.style = vtk.vtkInteractorStyleTrackballCamera() # 交互器样式的一种,该样式下,用户是通过控制相机对物体作旋转、放大、缩小等操作
self.style.SetDefaultRenderer(self.renderer)
self.iren.SetInteractorStyle(self.style)
# 4.添加世界坐标系
axesActor = vtk.vtkAxesActor()
self.axes_widget = vtk.vtkOrientationMarkerWidget()
self.axes_widget.SetOrientationMarker(axesActor)
self.axes_widget.SetInteractor(self.iren)
self.axes_widget.EnabledOn()
self.axes_widget.InteractiveOff() # 坐标系是否可移动