【问题标题】:QML save image file on deviceQML 在设备上保存图像文件
【发布时间】:2014-07-01 15:24:39
【问题描述】:

我已通过从服务器使用 base64 发送图像文件成功地从 Web 下载了图像文件。我使用this教程将图像保存在设备上,但是我需要根据不同的设备指定图像目录,所以我使用QStandardPaths::writableLocation(QStandardPaths::DataLocation)作为saveURL。问题是返回的目录看起来像

/data/data/org.qtproject.example.WierszeApp/files/.local/share/libWierszeApp.so

并且无法读取已保存的文件。在 dir 上调用 .cdUp() 也会返回 false,因为它可能不可读/可写。让我头晕目眩的是,为什么它返回一个带有.so 扩展名的文件?当我将它保存到像/sdcard/Download/ 这样的硬编码位置时,我就没有问题了。

【问题讨论】:

    标签: android qt qml qt-quick


    【解决方案1】:

    从马口中:

    返回的存储位置可以是不存在的目录;即,它可能需要由系统或用户创建。”

    使用.so 扩展名命名目录没有任何问题。无论出于何种原因,这只是 Qt 选择的方案。

    【讨论】:

    • assets:/qml/WierszeApp/main.qml:94:5: QML Image: Cannot open: file://data/data/org.qtproject.example.WierszeApp/files/.local/share/libWierszeApp.so/i2.png 是我调用source: "file:/" + path + "/i2.png" 时得到的,其中路径是QStandardPaths::... 表达式
    • @Nadarian 您是否按照文档建议创建了路径?
    • 好吧,我一开始没明白你的意思。谢谢,这对我来说有点困难
    • 实际上,如果你能给我一个建议,我现在做错了什么?我在QDir mypath(QStandardPaths...) 变量中有我的路径。我检查它是否存在 if(!mypath.exists()) 如果它不存在我做 mypath.mkpath(".") 并且它返回 true 但是每次我启动应用程序时,if() 语句都会执行,就像没有创建目录一样
    • 也许您的开发环境没有保留这些文件?我对 Android 上的 Qt 了解不多。
    猜你喜欢
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    相关资源
    最近更新 更多