赞
踩
PyQt PyQt5 Python VTK Qt pyqt5Gui 三维重建,可视化;
使用Python 可视化 GUI,需要用到 Qt; 这里是一个简单的例子;
基于 VTK9, pyqt5 ,python3.9
- #!/usr/bin/env python3
-
- import sys
-
- # noinspection PyUnresolvedReferences
- import vtkmodules.vtkInteractionStyle
- # noinspection PyUnresolvedReferences
- import vtkmodules.vtkRenderingOpenGL2
- import vtk
- from PyQt5 import QtCore, QtGui, QtWidgets
- #from PyQt5.Qt5.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
- from vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
- from vtkmodules.vtkFiltersSources import vtkSphereSource
- from vtkmodules.vtkRenderingCore import (
- vtkActor,
- vtkPolyDataMapper,
- vtkRenderer
- )
- class MainWindow(QtWidgets.QMainWindow):
- def __init__(self, parent=None):
- QtWidgets.QMainWindow.__init__(self, parent)
- self.frame = QtWidgets.QFrame()
- self.vl = QtWidgets.QVBoxLayout()
- self.vtkWidget = QVTKRenderWindowInteractor(self.frame)
- self.vl.addWidget(self.vtkWidget)
- self.ren = vtkRenderer()
- self.vtkWidget.GetRenderWindow().AddRenderer(self.ren)
- self.iren = self.vtkWidget.GetRenderWindow().GetInteractor()
- # Create source
- source = vtkSphereSource()
- source.SetCenter(0, 0, 0)
- source.SetRadius(5.0)
- # Create a mapper
- mapper = vtkPolyDataMapper()
- mapper.SetInputConnection(source.GetOutputPort())
- # Create an actor
- actor = vtkActor()
- actor.SetMapper(mapper)
- self.ren.AddActor(actor)
- self.ren.ResetCamera()
- self.frame.setLayout(self.vl)
- self.setCentralWidget(self.frame)
- self.show()
- self.iren.Initialize()
- if __name__ == "__main__":
- app = QtWidgets.QApplication(sys.argv)
- window = MainWindow()
- sys.exit(app.exec_())
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。