关于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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 合同中付款方式错怎么办? 优步付款方式无效怎么办 工程付款方式变更没有合同怎么办 银行账号被锁了怎么办? 街电押金退不了怎么办 佣金宝账号忘了怎么办 如果汇款汇错了怎么办 手机汇款汇错了怎么办 汇款时少了数字怎么办 打过流脑后发烧怎么办 甲醛公司除完后怎么办 发票系统导出的xml 怎么办 新买的书包味道太大怎么办 alt+a截图热键冲突怎么办 白背心领发黄了怎么办 房屋装修后出现质量问题怎么办 华为p9手机音量小怎么办 华为畅享8玩游戏卡怎么办 华为畅享7玩游戏卡怎么办 华为p9升级以后屏幕失灵怎么办 荣耀9青春版玩游戏卡怎么办 华为p9屏幕不亮了怎么办 华为p9入水黑屏怎么办 农信密码忘记了怎么办 小米4g信号差怎么办 手机的调频调制器坏了怎么办 调制解调器的灯一直闪怎么办 691宽带用户名和密码无效怎么办 房间里有狐臭味怎么办 吃冰冻水果胃特别痛怎么办 小米5s屏幕闪烁怎么办 系统重装重启了怎么办 华为p10开不了机怎么办 眼镜腿夹的头疼怎么办 摩托车车头锁坏了怎么办 夏天骑摩托车戴头盔热怎么办 头盔玻璃罩边固定老是掉怎么办 电动车不戴头盔被扣车怎么办 郴州骑电动车没戴头盔怎么办 配置数据源时发现两个版本怎么办 微信占用内存3g怎么办