在资源文件中使用qml的程序不打开非主qml文件



我安装了Qt 5.0.1 for Windows 32位(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。只有主第一个文件主。QML已加载

独有:qml/qml/HarrixAI/主要。qml:16:5: HarrixMainButton不是一个类型当试图渲染QtQuick2ApplicationViewer(0x28fe08) (QRect(8,30 116x0)))时,无法找到可渲染的主窗口QtQuick2ApplicationViewer(0x28fe08) .

如何解决这个问题?在Qt 4.7与Qt Quick 1.1相同的方法工作。

加载main时不要在URL中使用相对路径。QML和它应该工作:

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

相关内容

  • 没有找到相关文章

最新更新