Qt中是否有本机"file explorer",我可以使用它让用户选择特定文件的路径?

Is there a native "file explorer" in Qt that I can use to have the user select path to a specific file?

本文关键字:选择 用户 路径 文件 可以使 本机 是否 file explorer Qt 我可以      更新时间:2023-10-16

我有一个小应用程序,它需要用户在运行时提供到特定文件的路径。我所需要的只是路径。我把它想象成某种形式的文件资源管理器,用户可以在其中遍历目录树。

在Qt中是否有办法做到这一点,或者我必须调用本机操作系统实现(如果可能的话)。如果不是在Qt,我怎么能利用本地操作系统的实现?

这就是QFileDialog试图实现的,所以我建议使用它,如果它是一个基于小部件的应用程序。你只需要写这样的东西:

fileName = QFileDialog::getOpenFileName(this,
tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));

这将弹出一个对话框供用户选择,用户可以使用该对话框进行导航。

如果您碰巧使用QML,您可以尝试使用FileDialog组件。然后,您可以这样写:

import QtQuick 2.2
import QtQuick.Dialogs 1.0
FileDialog {
    id: fileDialog
    title: "Please choose a file"
    onAccepted: {
        console.log("You chose: " + fileDialog.fileUrls)
        Qt.quit()
    }
    onRejected: {
        console.log("Canceled")
        Qt.quit()
    }
    Component.onCompleted: visible = true
}