python vtk mousemove_python 中删除VTK鼠标交互函数

在VTK文档中看到的有些函数在python中没进行封装,也没有相关文档,通过测试,下面的程序可以实现删除指定的交互函数

#!/usr/bin/env python

import vtk

t1 = 0

t2 = 0

t3 = 0

iren = vtk.vtkRenderWindowInteractor()

def pickerfunc (object, event):

if event == 'LeftButtonPressEvent':

print 'DOK'

print t1

if event == 'LeftButtonReleaseEvent':

print 'ROK'

print t2

if event == 'RightButtonPressEvent':

print t3

iren.RemoveObserver (t1)

iren.RemoveObserver (t2)

iren.RemoveObserver (t3)

def main():

cone = vtk.vtkConeSource()

cone.SetHeight( 3.0 )

cone.SetRadius( 1.0 )

cone.SetResolution( 10 )

map = vtk.vtkPolyDataMapper()

map.SetInputConnection(cone.GetOutputPort())

actor = vtk.vtkActor()

actor.SetMapper(map)

ren = vtk.vtkRenderer()

ren.AddActor(actor)

ren.SetBackground(0.1, 0.2, 0.4)

renWin = vtk.vtkRenderWindow()

renWin.AddRenderer(ren)

renWin.SetSize(300, 300)

iren.SetRenderWindow(renWin)

style = vtk.vtkInteractorStyleTrackballCamera()

iren.SetInteractorStyle(style)

global t1

global t2

global t3

t1 = iren.AddObserver ("LeftButtonPressEvent", pickerfunc)

t2 = iren.AddObserver ("LeftButtonReleaseEvent", pickerfunc)

t3 = iren.AddObserver ("RightButtonPressEvent", pickerfunc)

iren.Initialize()

iren.Start()

if __name__ == "__main__":

main()

通过交互函数的返回值,获取相关t1,t2,t3信息,依据此删除指定事件的交互函数,

如果用 iren.AddObserver("RightButtonPressEvent")将删除右键相关的所有交互函数,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值