You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Coin中OpenInventor组件缺失的替代方案及SoQtComponent使用问询

问题:Coin中模拟OpenInventor Components的替代方案?

我正在评估OpenInventor,用于开发一款具备小窗口功能的3D应用,用户可通过这些小窗口编辑场景图中的对象。《Inventor Mentor》(简称IM)第35-37页展示了此类小窗口及控件的截图,根据第16章内容,它们被称为components。

但我使用的OpenInventor实现版本Coin未针对components实现抽象基类(可参考SoXtComponent),因此Coin3d Python绑定Pivy附带的大部分IM示例无法运行,报错:

The SoGuiMaterialEditor node has not been implemented in the SoGui bindings of Coin!

请问是否有办法在Coin中模拟components?我希望继续使用Coin,因为其Python绑定Pivy是我选择它的首要原因,还是说soxt是我唯一的选择?


更新
我在站点包中找到一个包含SoQtComponent的共享对象,目前还不知道如何实例化它。

nm -D _soqt.cpython-310-x86_64-linux-gnu.so | grep Component | tr -s " " | cut -d " " -f 3 | c++filt 
SoQtComponent::initClasses()
SoQtComponent::getComponent(QWidget*)
SoQtComponent::setIconTitle(char const*)
SoQtComponent::setFullScreen(int)
SoQtComponent::getClassTypeId()
SoQtComponent::setWidgetCursor(QWidget*, SoQtCursor const&)
SoQtComponent::setWindowCloseCallback(void (*)(void*, SoQtComponent*), void*)
SoQtComponent::setSize(SbVec2s)
SoQtComponent::setTitle(char const*)
SoQtComponent::initClass()
SoQtComponent::isVisible()
SoQtComponent::getClassName() const
SoQtComponent::getIconTitle() const
SoQtComponent::isFullScreen() const
SoQtComponent::getBaseWidget() const
SoQtComponent::getWidgetName() const
SoQtComponent::getShellWidget() const
SoQtComponent::getParentWidget() const
SoQtComponent::isTopLevelShell() const
SoQtComponent::getSize() const
SoQtComponent::getTitle() const
SoQtComponent::getWidget() const

更新2
我现在已经知道如何导入SoQtComponent了,或许这就是解决方案?

from pivy.gui.soqt import SoQtComponent

内容的提问来源于stack exchange,提问作者Olumide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 03:05:19