【问题标题】:unhandled exception widget with sdkTrays in OgreOgre 中带有 sdkTrays 的未处理异常小部件
【发布时间】:2017-06-12 11:00:20
【问题描述】:

我对 Ogre 中的 sdkTrays 有一些严重的问题。

我的 OgreKinectGame 继承自 BaseApplication。 BaseApplication 正在使用 sdkTrayManager 创建徽标等。我认为这个 mTrayMgr 是继承的,也可以在我的应用程序中使用。

我正在尝试为 HUD 设置小部件,但遇到未处理的异常错误。

我的 setupWidgets() 函数如下所示。

void OgreKinectGame::setupWidgets()

{

if(!mTrayMgr)
    mTrayMgr = new SdkTrayManager("InterfaceName", mWindow, mMouse);

    //mTrayMgr->destroyAllWidgets(); this caused exceptions as well
    // create check boxes to toggle the visibility of our particle systems
    const int WIDTH_UI = 160;
    // main menu
    mTrayMgr->createLabel(TL_CENTER, "mMainMenuLabel", "Main Menu", WIDTH_UI);
    mTrayMgr->createButton(TL_CENTER, "mOptionButton", "Option");
    mTrayMgr->createButton(TL_CENTER, "mCreditButton", "About");
    mTrayMgr->createButton(TL_CENTER, "mQuitButton", "Quit");

    mTrayMgr->showAll();

}

【问题讨论】:

  • 您的应用程序能否成功加载包含所有 GUI 相关资源的 SdkTrays.zip 存档?如果不是,那可能是游标访问引起问题的原因。检查 Ogre.log 中的错误/异常。

标签: c++ ogre3d


【解决方案1】:

首先,你在哪里初始化你的 setupWidgets()? ,在 BaseApplication 类上,它们有 setup(),你可以在你的主类中创建这个 setup() 的虚拟,然后在那里初始化你的 setupWiget(),例如,

bool OgreKinectGame::setup(void)
{
   if (!BaseApplication::setup()) {
    return false;
   }
   // Load fonts for tray captions
   FontManager::getSingleton().getByName("SdkTrays/Caption")->load();
   setupWidgets();//initialize here for your setupWidget()
} 

其次,我觉得你的 setupWidget() 应该是这样的,

void OgreKinectGame::setupWidgets()
{
    const int WIDTH_UI = 160;
    // main menu
    mTrayMgr->createLabel(TL_CENTER, "mMainMenuLabel", "Main Menu", WIDTH_UI);
    mTrayMgr->createButton(TL_CENTER, "mOptionButton", "Option");
    mTrayMgr->createButton(TL_CENTER, "mCreditButton", "About");
    mTrayMgr->createButton(TL_CENTER, "mQuitButton", "Quit");
}

如果仍然崩溃,您可以尝试此解决方案并再次返回吗?

【讨论】:

  • 谢谢,这就是问题所在!我试图(不成功)实现我自己的设置,而不是使用从 BaseApplication 继承的函数 bool setup()。
猜你喜欢
  • 2020-12-29
  • 1970-01-01
  • 2017-11-22
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多