我正在使用 QT6 处理 DICOM (
.dcm
) 文件格式。它可以作为文件或文件夹呈现。我想使用一个选择器,它允许我选择文件夹和文件。
如我所见here,Qt 5.15允许通过
selectFolder
属性,但在Qt 6.x中被删除。
正如我所见here现在它需要一个C++ hack。
可以用Qt6中的QML工具来完成吗? (Qt 6.4 更准确)
在 Qt5.x 中,你有 FileDialog,是的,它确实有一个 selectFolder 布尔值,它只能是真或假。不是都。所以它有双模式。
在 Qt6.x 中你有 FileDialog 和 FolderDialog。因此,同样,您不能同时拥有这些组件。
相反,您可以考虑自己动手。作为起点,您可以考虑使用
Qt.labs.folderlistmodel
,这样您就不需要在 C++ 中创建任何代码。以下是您如何创建可同时处理文件和文件夹的文件/文件夹选择器的演示(这只是一个演示,绝不是完整的):
import QtQuick
import QtQuick.Controls
import Qt.labs.folderlistmodel
Page {
Frame {
ListView {
implicitWidth: 200
implicitHeight: 400
width: implicitWidth
height: implicitHeight
clip: true
model: FolderListModel {
id: folderModel
folder: "file:/tmp"
nameFilters: ["*.*"]
}
delegate: CheckBox {
width: ListView.view.width - 20
text: fileName
checkable: true
}
ScrollBar.vertical: ScrollBar {
width: 20
policy: ScrollBar.AlwaysOn
}
}
}
}
// one.txt
tst
// two.txt
tst
// three/three-a.txt
tst
// three/three-b.txt
tst
// four.txt
tst
您可以在线试用!
参考资料: