widget.cpp:236:8: error: no member named 'setAllowThrowing' in 'osgEarth::Util::EarthManipulator'
时间: 2023-07-29 16:06:13 浏览: 41
如果在调用`setAllowThrowing()`方法时出现了`no member named 'setAllowThrowing'`错误,这可能是因为该方法不再支持或者在当前版本的OSG库中已被删除。
在这种情况下,可以尝试使用其他方法来停止事件处理。一个可行的方法是使用`setNodeMask()`方法来禁用地球操纵器的所有输入事件。该方法将事件处理器设置为不接收任何输入事件。
以下是一个示例代码:
```cpp
osg::ref_ptr<osgEarth::Util::EarthManipulator> manipulator = new osgEarth::Util::EarthManipulator();
// 在程序退出时,手动停止事件处理
manipulator->setNodeMask(0);
```
在调用`setNodeMask()`方法后,地球操纵器将不再接收任何输入事件。需要注意的是,该方法禁用了所有的输入事件,包括鼠标和键盘事件,因此可能会影响应用程序的功能。如果需要在退出前仍然接收某些事件,则需要手动重写事件处理方法,以便在退出时自行处理这些事件。