Я получил ошибки: "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 в без названия9.pro.
Я не модифицировал другие коды, как это случилось? Это мой первый вопрос в stackru, я пытаюсь прояснить свой вопрос.

1 ответ

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

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

engine.load(QUrl::fromLocalFile("main.qml"));
Другие вопросы по тегам