在QML中,假如想要使用文件浏览器选择文件或者文件夹时。可以使用FileDialog
。
FileDialog
有个属性folder
,设置好路径之后,当你打开fileDialog时,fileDialog当前定位到的路径就是你设置的路径。
但是这个folder
的设置有点问题,和路径的层级有关系
- 假如你的目标路径是大于等于三级的(比如
file:///D:/Advantech/DAQNavi
),基本不会有啥问题. - 假如是二级目录,必须要加上后斜杆,比如要写
file:///D:/Advantech/
,而不能写file:///D:/Advantech
- 假如是一级目录,必须不能加上后斜杆,比如要写
file:///D:
,而不能写file:///D:/
但是,这些都是在FileDialog的代码块内直接赋值才存在的问题。假如你是使用fileDialog.folder = "file:///C:/Users/"
这样的方式赋值的话,加不加斜杆貌似都没问题。
具体的情况可以自行测试一下。
Timer{
interval: 2000
running: true
repeat: false
onTriggered: {
// fileDialog.folder = "file:///C:/Users/"
console.log("before url:", fileDialog.folder)
fileDialog.open()
console.log("after url:", fileDialog.folder)
}
}
FileDialog{
id: fileDialog
// folder: "file:///C:/Users/"
folder: "file:///C:"
// folder: shortcuts.home
selectFolder: true
onFolderChanged: {
console.log("folder changed:", folder)
}
}
标签:QtQuick,Dialogs,路径,斜杆,fileDialog,file,FileDialog,folder
From: https://www.cnblogs.com/joyopirate/p/18295705