如何提取路径的文件名

时间:2015-06-16 15:28:46

标签: qt qml qtquick2 qt5.4

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

我在Qt 5.4.2 mingw上。提前谢谢。

1 个答案:

答案 0 :(得分: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)