Important: Please read the Qt Code of Conduct -

Qt3D: Accessing QAspectEngine with Scene3D

  • I followed the "Writing a Custom Qt 3D Aspect" blog entry from And the CustomAspect works fine.
    In that example a Qt3DQuickWindow is used. Now I want to use my custom aspect in my own project which is a QtQuick app, that uses a ApplicationWindow with a Scene3D embedded to display the Qt3D content.

    My question is: How do I access the QAspectEngine in such a case, so I can register my custom aspect?

  • I found no way to access the QAspectEngine directly, but you can register custom aspects like this:

    QT3D_REGISTER_NAMESPACED_ASPECT("customAspect", QT_PREPEND_NAMESPACE(mynamespace), CustomAspect)

    Then you can use this aspect in Scene3D:

    Scene3D {
        id: sceneView
        aspects: ["input", "logic", "customAspect"]

    I had to create an unused instance of the custom aspect in my C++ code, to make it work. I guess because of the registerBackendType call in the constructor.

Log in to reply