【问题标题】:How can I extract the filename of a path如何提取路径的文件名
【发布时间】:2015-06-16 15:28:45
【问题描述】:

如标题所述,我想提取路径的文件名(我使用FileDialog 查找文件)。如果可能,不使用 c++ 代码。

我正在使用 Qt 5.4.2 mingw。提前谢谢你。

【问题讨论】:

  • 使用 Javascript 并从您的 FileDialogonAccepted 处理程序中的路径中提取文件名。请参阅this answer 中使用的方法。
  • 感谢您对我的问题的更正以及您的回答!
  • @BaCaRoZzo 这通常是个坏主意。
  • @KubaOber 好吧,我完全同意你的看法!我只是满足OP的要求。即使在今天,我也使用QFileInfo。正如你所说,这是微不足道的。我应该提到它。我的错,对不起。 :)

标签: qt qml qtquick2 qt5.4


【解决方案1】:

考虑到将 QML 与任何 C++ 类接口是多么的简单,解决方案在 C++ 中不是问题。

QFileInfo(filePath).fileName() 会这样做,如果 filePath 是从文件对话框返回的路径。您只需要将其公开给 QML:

class Helper : public QObject
{
  Q_OBJECT
public:
  Q_INVOKABLE QString fileNameFromPath(const QString & filePath) const {
    return QFileInfo(filePath).fileName();
  }  
};

int main(int argc, char *argv[]) {
    QGuiApplication app(argc, argv);
    QQuickView view;

    Helper helper;
    view.rootContext()->setContextProperty("appHelper", &helper);

    view.setSource(QUrl::fromLocalFile("foo.qml"));
    view.show();

    return app.exec();
}

从 QML,只需调用 appHelper.fileNameFromPath(path)

【讨论】:

    猜你喜欢
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2010-10-01
    • 2016-06-19
    • 1970-01-01
    • 2013-08-19
    相关资源
    最近更新 更多