【发布时间】:2019-01-07 12:27:09
【问题描述】:
如何在触摸事件中使用Qt3DRender::QObjectPicker?
我正在通过这种方法将Qt3DRender::QObjectPicker 组件添加到我的 Qt3D 实体中:
Qt3DRender::QObjectPicker *MyClass::createObjectPickerForEntity(Qt3DCore::QEntity *entity)
{
Qt3DRender::QObjectPicker *picker = new Qt3DRender::QObjectPicker(entity);
picker->setHoverEnabled(false);
entity->addComponent(picker);
connect(picker, &Qt3DRender::QObjectPicker::pressed, this, &MyClass::handlePickerPress);
return picker;
}
我的对象选择器适用于鼠标点击,但不适用于触摸事件。有人知道我如何在智能手机上使用带有触摸事件的 Qt3D 对象选择器吗?
【问题讨论】:
-
你使用的是 Qt >= 5.11 吗?在这种情况下,您可以使用QScreenRayCaster 手动接收触摸事件并将它们转发给光线投射器。
-
@FlorianBlume 谢谢!是的,我使用的是
5.11.3版本,实际上您提供的链接读起来很棒,我相信它可以解决我的问题:) -
我认为您需要使用
QScreenRayCaster,因为这是将光线从 2D 鼠标位置投射到世界的类。诀窍是(如果我没记错的话)将光线投射器作为组件添加到场景图的 root 实体中。 -
我回答了一个关于光线投射器here的问题。
-
很高兴能帮上忙 :) 如果您有可行的解决方案,请不要忘记发布。
标签: qt3d