【问题标题】:Is there a native "file explorer" in Qt that I can use to have the user select path to a specific file?Qt 中是否有本机“文件资源管理器”,我可以使用它让用户选择特定文件的路径?
【发布时间】:2014-05-23 01:38:47
【问题描述】:

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

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

【问题讨论】:

  • 您查看过QFileDialog 的文档吗? qt-project.org/doc/qt-4.8/qfiledialog.html
  • 我进行了谷歌搜索,但没有出现。我发现的只是一些open-source 程序。也许我使用了错误的关键字。谢谢!一般来说,是否可以使用本地 OS 文件系统 API?我从来没有真正尝试过这个,我只是想知道它是否可能。
  • 如果你想让你的程序独立于操作系统,我建议使用Qt的文件系统类-QDirQDirIteratorQFile,QFileInfo等。
  • @sherrellbc QFileDialog 是你想要的。它使用本机文件系统;只需检查 R Sahu 的链接。
  • @sherrellbc:您可能在谷歌搜索时寻找的是文件管理器而不是文件对话框。

标签: c++ c qt qtgui qfiledialog


【解决方案1】:

这是QFileDialog 试图实现的目标,所以如果它是基于小部件的应用程序,我建议使用它。您只需要编写如下内容:

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

这将弹出一个对话框供用户用于导航。

如果你碰巧使用 QML,你可以试试FileDialog component。然后,你会写这样的东西:

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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2018-08-19
    相关资源
    最近更新 更多