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

Reply via email to