.svg 文件运行时的 Qt Quick FolderListModel 实现 warnings/errors
Qt Quick FolderListModel implementation for .svg files runtime warnings/errors
在目录 /images
中,我有几个 .svg 文件(使用 Adobe 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
目录中每个文件的文件名。这是什么意思?
AFAIK 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
您可以使用 filePath 或 fileURL 而不是 ueImageModel.folder + "/" +文件名
http://doc.qt.io/qt-5/qml-qt-labs-folderlistmodel-folderlistmodel.html
在目录 /images
中,我有几个 .svg 文件(使用 Adobe 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
目录中每个文件的文件名。这是什么意思?
AFAIK 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
您可以使用 filePath 或 fileURL 而不是 ueImageModel.folder + "/" +文件名 http://doc.qt.io/qt-5/qml-qt-labs-folderlistmodel-folderlistmodel.html