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
相关产品推荐
相关产品推荐

