我制作了一个名为fileDialog.qml的 qml 文件,它使用FileDialog{}
了 qt5 提供的元素
http://qt-project.org/doc/qt-5.1/qtquickdialogs/qml-qtquick-dialogs1-filedialog.html。
每当我需要资源的位置时,我想使用fileDialog.qml作为组件并设置所有属性,如标题、过滤器等。这些工作正常,但是当我尝试使用时id.fileUrl
没有响应。详情如下。
文件 fileDialog.qml是
import QtQuick 2.1
import QtQuick.Dialogs 1.0
FileDialog {
id: fileDialog
objectName: "fileBrowser"
title: "Add New Layer"
visible: false
property alias selectedFilename: fileDialog.fileUrls
onAccepted: {
console.log("You chose: " + fileDialog.fileUrls)//-------- (1)
}
onRejected: {
console.log("Canceled")
}
//Component.onCompleted: visible = true
}
现在,当单击“浏览”(QML 中的一个项目用作按钮)按钮时,将其用作组件,然后我正在执行以下步骤。
onClicked: {
//Default Values fileDialog.{selectExisting = true, selectFolder = false}
fileDialog.title = "Add New Image"
//fileDialog1.selectMultiple = true
fileDialog.nameFilters = ["Image File (*.png *.jpg *.bmp)"]
//fileDialog.fileUrls
//string path
fileDialog.visible = true
console.log(" Image chosen: " + fileDialog.fileUrl + " in image")//--- (2)
}
第 (1) 行工作正常,但 (2) 行不通。控制台中 (2) 行的输出只是Image selected: in image。
我不明白我在这里做错了什么,因为当我设置组件fileDialog的其他(如标题,文件管理器)属性时,它的工作但不适用于fileUrl或fileUrls。
请有人建议在将其用作组件时如何获取 fileUrl。
谢谢,