[Interest] [Qt3D] Mixing C++ and QML

Xavier Bigand flamaros.xavier at gmail.com
Thu Oct 19 17:40:33 CEST 2017


The issue is that QEntity doesn't reflect directly the qml type Entity,
this is the same for many Qt3D classes.

Here is the declaration of QEntity from qentity.h

class QT3DCORESHARED_EXPORT QEntity : public QNode

{

    Q_OBJECT

public:

    explicit QEntity(QNode *parent = nullptr);

    virtual ~QEntity();


    QComponentVector components() const;


    void addComponent(QComponent *comp);

    void removeComponent(QComponent *comp);


    QEntity *parentEntity() const;


protected:

    explicit QEntity(QEntityPrivate &dd, QNode *parent = nullptr);


private:

    Q_DECLARE_PRIVATE(QEntity)


    QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE;

};



As you can see the method addComponent is not virtual and exported as
Q_PROPERTY, so when creating a derived class of QEntity when instanced
in qml it doesn't inherited of Entity properties.




2017-10-19 15:44 GMT+02:00 Jason H <jhihn at gmx.com>:

> > I am looking for a way to manage an Entity tree in C++ and the Scene
> configuration in QML. My C++ code manage entities from a root node and I
> want to move the Frame graph and camera management,... to qml.
> > I can't figure out how to do that because if create a class that derive
> from QEntity some properties of Entity aren't declared like "components".
> >
> > My goal is to have an object hierarchy made with QEntity in c++ and
> dynamic views on it made in QML. Scene views should be dockable,...
>
>
> This is well-documented. QEntity inherits from QObject so you are good.
> I'm not sure what you mean by "like components". Public properties, signals
> and slots are visible to QML. If not it's a simple matter of wrapping them
> in a public one.
>
> http://doc.qt.io/qt-5/qtqml-cppintegration-topic.html
>
>
>
>


-- 
Xavier
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20171019/e180c510/attachment.html>


More information about the Interest mailing list