2

我为 Windows 32 位安装了 Qt 5.0.1 (MinGW 4.7, 823 MB)

然后我创建了简单的 Quick 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 文件放入前缀 qml 的资源 res.qrc 中并更改 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();
}

并且该程序不起作用。第二个文件 HarrixMainButton.qml 未加载。仅加载主要的第一个文件 main.qml。

qrc:qml/qml/HarrixAI/main.qml:16:5:HarrixMainButton 不是类型 尝试呈现 QtQuick2ApplicationViewer(0x28fe08) ( QRect(8,30 116x0) ) 时,无法找到可呈现的主窗口 QtQuick2ApplicationViewer(0x28fe08)。

如何解决问题?在带有 Qt Quick 1.1 的 Qt 4.7 中,同样的方法有效。

4

1 回答 1

1

加载 main.qml 时不要在 URL 中使用相对路径,它应该可以工作:

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

于 2013-03-20T11:47:39.757 回答