Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

(Qt5.15.0 + Qt Creator 4.12.4) Qml Module not found - Integrating QML and C++



  • Hello, based on the Integrating QML and C++ I made the registration for the C++ Class, but Qt Creator reports the error "Qml Module not found". I made a breakpoint into the C++ Class and executed a Debug session and by Textchange the breakpoint gets hit, means the Module is found.

    How I solve the Error Message, because is annoying and code completion doesn't work

    Operationsystem: Windows 10
    Qt Version: Qt5.15.0
    Qt Creator: 4.12.4
    ompiler: MSVC2019 64Bit

    Pro file:

    QT += quick
    
    CONFIG += c++11
    
    CONFIG += qmltypes
    QML_IMPORT_NAME = io.qt.examples.backend
    QML_IMPORT_MAJOR_VERSION = 1
    
    
    # The following define makes your compiler emit warnings if you use
    # any Qt feature that has been marked deprecated (the exact warnings
    # depend on your compiler). Refer to the documentation for the
    # deprecated API to know how to port your code away from it.
    DEFINES += QT_DEPRECATED_WARNINGS
    
    # You can also make your code fail to compile if it uses deprecated APIs.
    # In order to do so, uncomment the following line.
    # You can also select to disable deprecated APIs only up to a certain version of Qt.
    #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
    
    SOURCES += \
            backend.cpp \
            main.cpp
    
    RESOURCES += qml.qrc
    
    # Additional import path used to resolve QML modules in Qt Creator's code model
    QML_IMPORT_PATH =
    
    # Additional import path used to resolve QML modules just for Qt Quick Designer
    QML_DESIGNER_IMPORT_PATH =
    
    # Default rules for deployment.
    qnx: target.path = /tmp/$${TARGET}/bin
    else: unix:!android: target.path = /opt/$${TARGET}/bin
    !isEmpty(target.path): INSTALLS += target
    
    HEADERS += \
        backend.h
    

    backend.cpp

    #include "backend.h"
    
    BackEnd::BackEnd(QObject *parent) :
        QObject(parent)
    {
    }
    
    QString BackEnd::userName()
    {
        return m_userName;
    }
    
    void BackEnd::setUserName(const QString &userName)
    {
        if (userName == m_userName)
            return;
    
        m_userName = userName;
        emit userNameChanged();
    }
    

    backend.h:

    #ifndef BACKEND_H
    #define BACKEND_H
    
    #include <QObject>
    #include <QString>
    #include <qqml.h>
    
    class BackEnd : public QObject
    {
        Q_OBJECT
        Q_PROPERTY(QString userName READ userName WRITE setUserName NOTIFY userNameChanged)
        QML_ELEMENT
    
    public:
        explicit BackEnd(QObject *parent = nullptr);
    
        QString userName();
        void setUserName(const QString &userName);
    
    signals:
        void userNameChanged();
    
    private:
        QString m_userName;
    };
    
    #endif // BACKEND_H
    

    main.qml:

    Line 3 "import io.qt.examples.backend 1.0" I get the error Qml Module not found

    import QtQuick 2.6
    import QtQuick.Controls 2.0
    import io.qt.examples.backend 1.0
    
    ApplicationWindow {
        id: root
        width: 300
        height: 480
        visible: true
    
        BackEnd {
            id: backend
        }
    
        TextField {
            text: backend.userName
            placeholderText: qsTr("User name")
            anchors.centerIn: parent
    
            onTextChanged: backend.userName = text
        }
    }
    

    This file gets generated:

    [
        {
            "classes": [
                {
                    "classInfos": [
                        {
                            "name": "QML.Element",
                            "value": "auto"
                        }
                    ],
                    "className": "BackEnd",
                    "object": true,
                    "properties": [
                        {
                            "constant": false,
                            "designable": true,
                            "final": false,
                            "name": "userName",
                            "notify": "userNameChanged",
                            "read": "userName",
                            "required": false,
                            "scriptable": true,
                            "stored": true,
                            "type": "QString",
                            "user": false,
                            "write": "setUserName"
                        }
                    ],
                    "qualifiedClassName": "BackEnd",
                    "signals": [
                        {
                            "access": "public",
                            "name": "userNameChanged",
                            "returnType": "void"
                        }
                    ],
                    "superClasses": [
                        {
                            "access": "public",
                            "name": "QObject"
                        }
                    ]
                }
            ],
            "inputFile": "backend.h",
            "outputRevision": 67
        }
    ]
    


  • Hello, does somebody can confirm same issue?



  • I am not sure it's the same issue, but I have a similar problem, but in my QML I explicitely use 2.15 module import ("import QtQuick 2.15")

    I can see in QT Creator, menu Help->System information... that QT creator is built against QT 5.14.2, so if I change my QTQuick version to 2.14 in QML import, it works.

    That is, it seems that the import supported version depends from QT Creator QT build version, which is weird. If so, guys, please rebuilt QT Creator always with latest QT version, so 5.15 in this case.



  • Checked again my Qt Creator Version and is "Based on Qt 5.14.2". I'm not able to build Qt Creator against 5.15.0 by myself, means I cannot confirm is solves the Problem.



  • @Shazter I have the exact same issue.



  • I am experiencing the same issue with Qt Creator 4.13.0 (based on Qt 5.15.0 MSVC 2019, 64 bit)



  • Same problem. Came here to ask it. I'm even using the exact same example which is found here. Original link in the question is a 404.

    Qt Creator 4.13.2
    Based on Qt 5.15.1 (MSVC 2019, 64 bit)
    Built on Oct 1 2020 01:14:56

    Some more info for my case:

    • I get the "QML Module error not found" but not in output, only in the QtCreator text editor. Project still runs and builds fine.
    • Ctrl + Space intellisense or whatever its called doesn't recognize the module, and it is shown in gray as in an unrecognized keyword, all while actually working
    • I get two warnings. Both are identical: -1: warning: Failure to find: testcustommodule_metatypes.json. My project is called TestCustomModule.
    • While compiling QtCreator adds a subfolder to my Sources which is a full local path and within it is a single file: testcustommodule_metatypes.json. I hate this.

    Tried importing different QtQuick modules as suggested; no effect. Is there a solution to this yet? Feels like it might have something to do with QML_IMPORT_PATH

    For now I'm going back to the old school qmlRegisterType method. But I'd love to get this working.



  • Have exactly the same issue.

    Qt Creator 4.13.2
    Based on Qt 5.15.1 (MSVC 2019, 64 bit)
    Built on Oct 1 2020 01:14:56

    My application seems to work fine, but Library area with available QML Types in Design tab "dies" everytime I try to edit a QML file with pseudo-erroneous import. It doesn't react to clicks and scrolling.



  • Same issue here. Tried the Beta Qt Creator with no success. If I choose Android project and build it, the error disappears, but still Form designer does not show form correctly.



  • Exactly the same issues described by other posters. I have upgraded Qt Creator to the latest available version (4.13.2), and also updated to 5.15.1 hoping this to solve the problem, but no luck so far. It's disappointing to see how much time has passed since these issues were initially reported with the Qt staff remaining just silent



  • I'm having the same issue as well.



  • I am also facing the same issue, is this issue resolved or can anyone points to the solution



  • Also experiencing the same issue. There is an open bug report here: https://bugreports.qt.io/browse/QTCREATORBUG-24987



  • Hello,
    I'm having same issue with Qt6.0.1 and Qt Creator 4.14
    But the application still run successfully. Just got this ennoying error (QML module not found) from Qt Creator and also the subfolder with the full path to xxxx_metatypes.json (as described in a post above)

    Can someone from Qt help on this please ?
    Is it a bug on Qt Creator ?

    Thanks.



  • Also having this problem on 5.15.2, Qt Creator 4.14.0.

    I have local classes with the proper QML_ELEMENT macro in them, along with the proper QML_IMPORT_NAME and QML_IMPORT_MAJOR_VERSION defined. The code runs fine with the QML_IMPORT_PATH set to $$PWD, but the QML documents are still getting highlighted in QtCreator as not being able to find the module.


Log in to reply