3

Qt Widgets アプリケーションを作成し、「main.qml」という名前の qml を追加しました。私のファイルは、 qml.qrc のdialog.cppdialog.hdialog.uimain.cppuntitled9.promain.qmlです

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();
}

untitled9.proに書きQT += qml quick widgetsました。 他のコードは変更していませんが、どうしてこうなったのですか? これはスタックオーバーフローでの最初の質問です。質問を明確にしようとしています。

4

1 に答える 1

1

QUrl::fromLocalFile は、ローカル ファイル ベースの URL を作成します。したがって、コード内の「qrc:///」を削除するだけです。必要に応じてビルド先ディレクトリに main.qml をコピーします。

サンプルコード:

engine.load(QUrl::fromLocalFile("main.qml"));
于 2015-04-21T03:31:39.327 に答える