Я получил ошибки: QQmlApplicationEngine не удалось загрузить компонент и файл qrc:/main.qml:-1 не найден

Я создал приложение Qt Widgets, а затем добавил в него qml с именем "main.qml". Мои файлы: dialog.cpp, dialog.h, dialog.ui, main.cpp, untitiled9.pro, main.qml в qml.qrc

main.cpp:

#include "dialog.h"
#include <QApplication>
#include <QQmlApplicationEngine>
#include<QtQml>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    // w.show();
    QQmlApplicationEngine engine;
    // engine.load(QUrl(QStringLiteral("qrc://main.qml")));
    engine.load(QUrl::fromLocalFile("qrc:///main.qml"));
    return a.exec();
}

Я написал QT += qml quick widgets в untitled9.pro.
Я не изменил другие коды, как это произошло? Это мой первый вопрос в stackoverflow, я стараюсь четко изложить свой вопрос.


person Peter Zhang    schedule 21.04.2015    source источник


Ответы (1)


QUrl::fromLocalFile создаст URL-адрес на основе локального файла. Итак, просто удалите «qrc:///» в коде. При необходимости скопируйте main.qml в целевой каталог сборки.

Образец кода:

engine.load(QUrl::fromLocalFile("main.qml"));
person douyw    schedule 21.04.2015