[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