【问题标题】:QML: how to get file baseNameQML:如何获取文件baseName
【发布时间】:2015-10-04 14:55:18
【问题描述】:

如何从完整的文件 URL 中提取文件 baseName?

FileDialog
    {
        id: fileDialog
        title: "Oooopen"
        onAccepted:
        {
        console.log(fileUrl)    
        }

    }

fileUrl 没有baseName 之类的属性 我尝试谷歌搜索,但没有成功

【问题讨论】:

  • 您可以使用 QFileInfo 的功能从 C++ 向 QML 公开自定义类,因为它不是从 QObject 派生的,并且不能直接向 QML 公开。或者只使用正则表达式,例如fileUrl.toString().replace(/\\/g,'/').replace(/.*\//, '')

标签: qml qt-creator


【解决方案1】:

您可以定义自己的basename 函数

function basename(str)
{
    return (str.slice(str.lastIndexOf("/")+1))
}


FileDialog
{
    id: fileDialog
    title: "Oooopen"
    onAccepted:
    {
        console.log(basename(fileUrl.toString()))    
    }
}

【讨论】:

  • 在 Qt 5.10 中(也可能是早期版本)这个函数看起来像:return (String(str).slice(String(str).lastIndexOf("/")+1))
猜你喜欢
  • 2016-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 2021-06-25
  • 2018-12-06
相关资源
最近更新 更多