osgWidget.MouseHandler 是一个用于处理 osgWidget 窗口区域内的鼠标事件的类。
该类继承自 osgGA.GUIEventHandler,并重载了 handle() 函数以处理鼠标事件。
def __init__(self, widget):
"""构造函数。
:param widget: QtWidgets.QWidget, osgWidget 窗口区域的父类 Qt 窗口组件。
"""
pass
widget
:QtWidgets.QWidget,osgWidget 窗口区域的父类 Qt 窗口组件。
lastX
:int,上一次鼠标事件中的横坐标。
lastY
:int,上一次鼠标事件中的纵坐标。
mouseEvent
:osgGA.GUIEventAdapter,当前的鼠标事件。
setCameraManipulator(self, manipulator)
设置要响应鼠标事件的 osgGA.CameraManipulator 对象。
def setCameraManipulator(self, manipulator):
"""设置要响应鼠标事件的 CameraManipulator 对象。
:param manipulator: osgGA.CameraManipulator, 要响应鼠标事件的 CameraManipulator 对象。
"""
pass
handle(self, event, nv)
重载 osgGA.GUIEventHandler.handle() 函数,处理鼠标事件。
def handle(self, event, nv):
"""处理鼠标事件。
:param event: osgGA.GUIEventAdapter,鼠标事件。
:param nv: osgUtil.RenderStage,渲染状态信息。
"""
pass
import osgGA
import osgWidget
import osgViewer
viewer = osgViewer.Viewer()
# 创建一个 osgWidget 窗口区域
widget = osgWidget.Widget()
widget.resize(640, 480)
handler = osgWidget.MouseHandler(widget)
viewer.addEventHandler(handler)
# 将窗口区域添加到场景图中
geode = osg.Geode()
geode.addDrawable(widget)
viewer.setSceneData(geode)
viewer.run()
使用 MouseHandler 处理鼠标事件的示例,详见:OpenSceneGraph 基础教程(五):osgWidget 窗口组件。