.svg 文件运行时的 Qt Quick FolderListModel 实现 warnings/errors

Qt Quick FolderListModel implementation for .svg files runtime warnings/errors

在目录 /images 中,我有几个 .svg 文件(使用 Adob​​e Illustrator 17 和 Corel Draw X7 创建的矢量图形文件)我想加载到 Qt Quick Application(Qt 5.4.1 for Linux 64 位)使用 FolderListModel 模型,将在某些 ListView 中显示。这是代码:

import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2

import Qt.labs.folderlistmodel 2.1

ApplicationWindow
{
    id: ueMainWindow

    visible: true

    width: 1920
    height: 1080

    color: "black"

    title: qsTr("eTestApp")

    property string ueRootDirectory:"/images"
    property real ueImagesLoadProgress;
    property bool ueImageLoading;

    ListView
    {
        id: ueImagesListView

        width: parent.width
        height: parent.height

        FolderListModel
        {
            id: ueImageModel

            folder: "file://"+ueRootDirectory
            nameFilters: ["*.svg"]
        }

        Component
        {
            id: ueImageDelegate

            Image
            {
                source: ueImageModel.folder + "/" + fileName
            }
        }

        model: ueImageModel
        delegate: ueImageDelegate
    }

}

当我 运行 包含带有 QtCreator 的代码的项目时,我为 /images 目录中的每个 .svg 文件得到以下错误:

file:///images/filename.svg:1:1: Expected token `numeric literal'
file:///images/filename.svg:1:1: Expected a qualified name id

filename.svg 表示 /images 目录中每个文件的文件名。这是什么意思?

A​​FAIK Loader 只加载QML 组件,不加载svg 文件。 http://doc.qt.io/qt-5/qml-qtquick-loader.html#details

如果你想加载 svg 文件,你可以使用 Image http://doc.qt.io/qt-5/qml-qtquick-image.html

您可以使用 filePathfileURL 而不是 ueImageModel.folder + "/" +文件名 http://doc.qt.io/qt-5/qml-qt-labs-folderlistmodel-folderlistmodel.html