Qt 中是不是有本机“文件资源管理器”,我可以使用它让用户选择特定文件的路径?
Posted
技术标签:
【中文标题】Qt 中是不是有本机“文件资源管理器”,我可以使用它让用户选择特定文件的路径?【英文标题】: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的文件系统类-QDir
、QDirIterator
、QFile,
QFileInfo
等。
@sherrellbc QFileDialog
是你想要的。它使用本机文件系统;只需检查 R Sahu 的链接。
@sherrellbc:您可能在谷歌搜索时寻找的是文件管理器而不是文件对话框。
【参考方案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
【讨论】:
以上是关于Qt 中是不是有本机“文件资源管理器”,我可以使用它让用户选择特定文件的路径?的主要内容,如果未能解决你的问题,请参考以下文章