Пытаюсь сделать Qt HUD в OSG, проблема с камерой

Я как бы новичок как в OSG, так и в Qt, но все же пытаюсь сделать Qt HUD в моем окне OSG, я хочу, чтобы элементы интерфейса Qt были зафиксированы внутри сцены OSG, а не вращались вместе с моделью. Дело в том, что мне нужны элементы Qt ВНУТРИ сцены osg, а не сцена OSG внутри окна Qt (как в примере OSGviewerQt).

У меня еще есть пример OSGQtWidgets с аргументами --useWidgetImage --fullscreen, который показывает фиксированные элементы управления Qt поверх модели OSG. Дело в том, что он создает новую (ФИКСИРОВАННУЮ) камеру для элемента qt поверх модели OSG - из-за этого пользователь не может вращать и перемещать модель OSG, потому что камера непрозрачна.

Итак, вопрос: есть ли способ сделать прозрачную камеру с полезными элементами Qt в ней? Или есть другой способ достичь моих целей?

Заранее спасибо!


person Kilazi    schedule 16.08.2012    source источник
comment
Я запутался, если вам нужен HUD, зачем вам нужны «элементы» Qt (например, что?) внутри сцены OSG? Конечно, вы хотите, чтобы они лежали сверху, не обращая внимания на данные камеры.   -  person cmannett85    schedule 16.08.2012
comment
спасибо за быстрый ответ; необходимые элементы Qt - кнопки, древовидные списки и т. д .; Я хочу, чтобы они внутри сцены OSG, потому что в данный момент в проекте, с которым я работаю, есть интерфейс OSGWidget, и было бы неплохо изменить его с OSGWidget на Qt; поэтому кажется, что намного проще перейти на элементы управления Qt внутри сцены, при использовании чего-то, как в примере OSGViewerQt, это было бы похоже на написание полностью нового пользовательского интерфейса   -  person Kilazi    schedule 16.08.2012


Ответы (1)


Я не могу сначала попробовать это на себе, но вы можете попробовать установить свойство на ортогональной «HUD» камере, чтобы события проходили через обычную программу просмотра OSG:

camera->setAllowEventFocus(false);

Если вы используете последнюю версию osgQtWidgets.cpp, вам нужно добавить это около строки 414.

person Chris    schedule 21.08.2012
comment
Спасибо за ответ, но ничего не вышло. Хотя даже если бы это было так, мой элемент управления Qt стал бы не кликабельным, не так ли? - person Kilazi; 28.08.2012