在 QtQuick 中选择文件或文件夹

问题描述 投票:0回答:1

我正在使用 QT6 处理 DICOM (

.dcm
) 文件格式。它可以作为文件或文件夹呈现。我想使用一个选择器,它允许我选择文件夹和文件。

如我所见here,Qt 5.15允许通过

selectFolder
属性,但在Qt 6.x中被删除。

正如我所见here现在它需要一个C++ hack。

可以用Qt6中的QML工具来完成吗? (Qt 6.4 更准确)

c++ qt qml qtquick2 qt-quick
1个回答
0
投票

在 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

您可以在线试用!

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.