2

Windows 32 ビット (MinGW 4.7、823 MB) 用に Qt 5.0.1 をインストールしました。

次に、簡単な Quick 2 アプリケーションを作成しました。2 つの単純な qml ファイルがあります。

main.qml

import QtQuick 2.0

Rectangle {
    width: 360
    height: 360
    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }
    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit();
        }
    }
    HarrixMainButton{

    }
}

HarrixMainButton.qml

import QtQuick 2.0

Item {
    width: 93
    height: 93

    Rectangle {
        width: 50
        height: 62
        color: "red"
    }

}

そして、プログラムはうまく機能しています。次に、qml ファイルをリソース res.qrc のプレフィックス qml に入れ、main.cpp を変更します。

#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"
#include <QUrl>
#include <QDebug>
#include <QQmlContext>
#include <QQuickItem>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QtQuick2ApplicationViewer viewer;
    //viewer.setMainQmlFile(QStringLiteral("qml/HarrixAI/main.qml"));
    viewer.setSource(QUrl("qrc:qml/qml/HarrixAI/main.qml"));
    viewer.showExpanded();

    return app.exec();
}

そして、プログラムは動作しません。2 番目のファイル HarrixMainButton.qml はロードされていません。メインの最初のファイル main.qml のみがロードされます。

qrc:qml/qml/HarrixAI/main.qml:16:5: HarrixMainButton はタイプではありません QtQuick2ApplicationViewer(0x28fe08) ( QRect(8,30 116x0) ) をレンダリングしようとすると、レンダリング可能なマスター ウィンドウ QtQuick2ApplicationViewer(0x28fe08) が見つかりません。

問題を解決するには?Qt 4.7 と Qt Quick 1.1 では、同じ方法が機能します。

4

1 に答える 1

1

main.qml をロードするときに URL で相対パスを使用しないでください。動作するはずです。

https://bugreports.qt-project.org/browse/QTBUG-26417

于 2013-03-20T11:47:39.757 に答える