3D Slicer扩展程序:如何使用各种“Event”

3D Slicer 中的有一群类以“xxxxNode”方式命名。每一个类除了自身特有的一些功能外,还有各种各样的Event,以vtkMRMLMarkupsNode为例,有:

  • CopyWithSceneWithSingleModifiedEvent
  • CopyWithSingleModifiedEvent
  • CopyWithoutModifiedEvent
  • DisplayModifiedEvent
  • GetDisableModifiedEvent
  • HierarchyModifiedEvent
  • IDChangedEvent
  • InvokeCustomModifiedEvent
  • InvokeEvent
  • InvokePendingModifiedEvent
  • LabelFormatModifiedEvent
  • LockModifiedEvent
  • MarkupAddedEvent
  • MarkupRemovedEvent
  • NthMarkupModifiedEvent
  • PointClickedEvent
  • ……等等……(太多了,列不完)

在3D Slicer扩展程序编写时,我们常常需要实现对某一个事件(Event)作出响应,这时就需要用到这些Event,具体如何使用呢?以vtkMRMLMarkupsNode的MarkupAddedEvent为例,实现添加一个标点就打印该点坐标的功能:

import slicer
def MarkupAddedEventCallback(Node, Event):
	index = Node.GetNumberOfFiducials() - 1
	pos = [0, 0, 0]
	Node.GetNthFiducialPosition(index, pos)
	print(pos)

MarkupsNode = slicer.vtkMRMLMarkupsNode()
MarkupsNode.AddObserver(MarkupsNode.MarkupAddedEvent, MarkupAddedEventCallback)

参考:[slicer-devel] How to get the new markup’s position through adding observer to MarkupAddedEvent

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值