关于pyQT5 + VTK7 的一个实现案例
来源:互联网 发布:淘宝的二手手机可靠吗 编辑:程序博客网 时间:2024/05/21 13:56
关于pyQT5 + VTK7 的一个实现案例
官方提供的两个案例使用的是pyQT4, 以下是更新的pyQT5。 另请参看官方的两个案例:
1、 http://www.vtk.org/Wiki/VTK/Examples/Python/Widgets/EmbedPyQt
2、 http://www.vtk.org/Wiki/VTK/Examples/Python/Widgets/EmbedPyQt2
from PyQt5 import QtWidgetsfrom PyQt5.QtWidgets import QApplicationfrom vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractorimport sysimport vtkclass Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(603, 553) self.centralWidget = QtWidgets.QWidget(MainWindow) self.gridlayout = QtWidgets.QGridLayout(self.centralWidget) self.vtkWidget = QVTKRenderWindowInteractor(self.centralWidget) self.gridlayout.addWidget(self.vtkWidget, 0, 0, 100, 100) self.buttonLeft = QtWidgets.QPushButton("Left") self.gridlayout.addWidget(self.buttonLeft, 96, 48, 1, 1) self.buttonRight = QtWidgets.QPushButton("Right") self.gridlayout.addWidget(self.buttonRight, 96, 52, 1, 1) self.buttonUp = QtWidgets.QPushButton("Up") self.gridlayout.addWidget(self.buttonUp, 94, 50, 1, 1) self.buttonDown = QtWidgets.QPushButton("Down") self.gridlayout.addWidget(self.buttonDown, 98, 50, 1, 1) self.buttonFire = QtWidgets.QPushButton("Fire Torpedo") self.gridlayout.addWidget(self.buttonFire, 95, 50, 3, 1) MainWindow.setCentralWidget(self.centralWidget)class SimpleView(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QMainWindow.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ren = vtk.vtkRenderer() self.ui.vtkWidget.GetRenderWindow().AddRenderer(self.ren) self.iren = self.ui.vtkWidget.GetRenderWindow().GetInteractor() # Create source source = vtk.vtkSphereSource() source.SetCenter(0, 0, 0) source.SetRadius(5.0) # Create a mapper mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(source.GetOutputPort()) # Create an actor actor = vtk.vtkActor() actor.SetMapper(mapper) self.ren.AddActor(actor)if __name__ == "__main__": app = QApplication(sys.argv) window = SimpleView() window.show() window.iren.Initialize() # Need this line to actually show the render inside Qt sys.exit(app.exec_())
0 0
- 关于pyQT5 + VTK7 的一个实现案例
- 一个基于python3+PyQt5实现的简单计算器程序
- 一个关于需求确认的案例
- 关于沟通问题的一个案例
- Go_关于组合的一个案例
- tip:关于rangepartition用到多列的一个小案例
- 关于Excel操作编写的一个软件设计构思案例[连载]
- 关于struts与spring整合的一个小案例入门
- 关于spring中aop的一个入门案例
- 关于java中static一个有意思的小案例
- 关于浮动和边距的一个综合案例
- PyQt5 做一个记事本
- 基于pyserial,用python34、PyQt5写的一个串口软件
- 关于一个哈希表的实现
- zookeeper实现一个配置项的修改的小案例
- 使用Java8的Lambda实现的一个简单案例
- 一个表达式计算案例的设计和实现
- Hibernate继承映射--每个类一个数据表的实现案例
- Java 多线程:join
- 学习笔记--mysql索引(五) 聚簇索引和覆盖索引
- ArchLinux安装与配置
- 转给六年后的我们
- 控制easyui datagrid 显示和隐藏的正确方法
- 关于pyQT5 + VTK7 的一个实现案例
- Android 数据库升级保留原数据不丢
- HTML5学习随记2⃣️
- js单例模式
- Jcompress: 一款基于huffman编码和最小堆的压缩、解压缩小程序
- 【LeetCode】 309. Best Time to Buy and Sell Stock with Cooldown
- 读《代码大全》2
- 在Ubuntu16.04下安装jdk-8u111-linux-x64.tar.gz并配置Java环境
- Effective c++条款28