Hi all,
I’m trying to play with Qt3d (in Qt5.7), and I'm struggling with the lack of
documentation and/or tutorials (and so I apologise in advance if this is an
obvious question).
What I wanted to test is how easy it is to click in the 3D view and select an
object.
If I understand correctly, I should do this using a QMouseHandler and add this
to the entity.
To test this, I modified the basic shapes example as follows:
in the initialisation list of SceneModifier I added:
m_mouseDevice(new Qt3DInput::QMouseDevice()),
m_mouseHandler(new Qt3DInput::QMouseHandler())
and in the rest of the ctor it now looks like:
m_mouseHandler->setSourceDevice(m_mouseDevice);
// Sphere
m_sphereEntity = new Qt3DCore::QEntity(m_rootEntity);
m_sphereEntity->addComponent(sphereMesh);
m_sphereEntity->addComponent(sphereMaterial);
m_sphereEntity->addComponent(sphereTransform);
m_sphereEntity->addComponent(m_mouseHandler);
// QObject::connect(mouseHandler, SIGNAL(clicked(Qt3DInput::QMouseEvent*)),
// this, SLOT(clicked(Qt3DInput::QMouseEvent*)));
QObject::connect(m_mouseHandler, &Qt3DInput::QMouseHandler::clicked,
this, &SceneModifier::clicked);
And I also added a new method:
void SceneModifier::clicked(Qt3DInput::QMouseEvent* event)
{
qDebug() << "clicked!";
}
However the function never gets called - I suspect I’ve missed something very
obvious, but if so I’d really appreciate any tips and/or links to anything else
to read.
Cheers,
Ed
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest