[Interest] How to select objects with Qt3D? (QMouseHandler question)
Edward Moyse
Edward.Moyse at cern.ch
Wed Jul 6 10:26:27 CEST 2016
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160706/e5038c0f/attachment.html>
More information about the Interest
mailing list