以下qml(QtQuick 2.7)代码在桌面(Linux,Windows,OSX)上返回true但在Android和ios上返回false(用于写入外部存储的Android权限在Manifest.Xml中设置)。
移动设备上的代码有什么问题? (imagePath已正确解析为标准图片位置,即Android上的存储/仿真/ 0 /图片)。
item.grabToImage(function(result) {
console.log(result.saveToFile(imagePath + "/picture.png"))
});
答案 0 :(得分:0)
QQuickItemGrabResult::saveToFile()
调用QImage::save()
,遗憾的是,除了bool返回值之外,没有任何错误报告。
如果我是你,我会将changeDividerColor(yournumberpicker, Color.parseColor("#00ffffff"));
的定义更改为以下内容,然后构建qtbase:
QImage::save()
这有望告诉您无法保存图像的原因。
如果无法自行构建Qt,您可以使用QImageWriter
尝试直接保存图像,并以此方式了解有关错误的更多信息。您可以将其添加到现有的main.cpp文件中:
bool QImage::save(const QString &fileName, const char *format, int quality) const
{
if (isNull())
return false;
QImageWriter writer(fileName, format);
const bool saved = d->doImageIO(this, &writer, quality);
qDebug() << writer.errorString();
return saved;
}
一旦您知道无法保存图像的原因,就可以删除此代码。