wxPython+VTK自学笔记-1 显示

VTK在wxpython中的显示

推荐官方的学习网站,绝大部分内容都可以在网站上找到。

一 前言

目标是让VTK的画布显示在wx的panel上。
首先要了解VTK的工作模式。具体的内容可以查相关资料。我在这里简单说一下。
要想让VTK显示东西,首先要有① Data,不管是自己创建还是导入文件的,都要有vtkPolyData。然后要将Data绑定到一个②Mapper上,对应的是vtkPolyDataMapper。接着要将Mapper绑定到③Actor上,对应vtkActor。最后将Actor添加到④Render上,对应vtkRenderer。
要想画出现实的东西,要处理以上①②③④四个对象。

最后一个Render就是最后呈现的画面,这个画面要绑定到RenderWindow上Interactor,这里要在wx中的panel空间上显示,所以不能直接创建RenderWindow。

这里wx和vtk提供了一个接口,wxVTKRenderWindowInteractor,这个可以直接理解为创建了一个可以在wx中操作的Interactor,把render添加到这个Interactor中就可以显示了。

二 开始

直接上代码,其实非常简单。有过wxpython开发经验的话,应该很容易明白。
需要注意的是,一定要把wxVTKRenderWindowInteractor放到一个sizer里,否则不能随窗口改变大小。
wxVTKRenderWindowInteractor里面内置了绑定了很多事件,这一点很便于新手学习,当然也可以自己绑定事件。

class WxVTKScene(wx.Panel):

    def __init__(self, parent, *args, **kwargs):
        wx.Panel.__init__(self, parent, *args, **kwargs)
        self.size = self.GetClientSize()  # 获取父窗体尺寸
        self.vtk_widget  = wxVTKRenderWindowInteractor(self, -1, size=(self.size.width,self.size.height), flag=wx.EXPAND)  # 创建VTK窗口

        self.vtk_widget .SetPosition((0,
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值