【发布时间】:2018-01-06 16:51:17
【问题描述】:
我在 QML 图像项上显示存储在内部存储中的图像文件时遇到问题。我尝试了很多事情,但无法弄清楚我该如何实现它。任何帮助表示赞赏。
QML 方面:
Image {
id: userPhotoDrawer;
anchors.centerIn: parent;
width : Math.min(parent.width , parent.height);
height : width;
sourceSize: Qt.size(width , height);
source: "file:///storage/emulated/0/Documents/share_example_x_files/qt-logo.png"
}
MouseArea
{
anchors.fill: parent;
onClicked: Caminho.buscaImagem();
}
Connections
{
target: Caminho;
onImagemCaminhoChanged:
{
var path = Caminho.imagemCaminho;
Caminho.checkPath(path);
}
}
}
在 cminhoImagens.cpp 中:
QString caminhoImagens::checkPath(QString pPath)
{
QFile tFile(pPath);
QStringList tList = pPath.split("/");
QString fileName = tList.last();
QString header = pPath.split(fileName).first();
QDir tdir(header);
if (tdir.exists())
{
qDebug() << "absolute path : " << tdir.absoluteFilePath(fileName)
<< endl << "file exists : " << tFile.exists();
}
return QUrl::fromLocalFile(pPath).toString();}
解释,我正在使用图像选择器在我的应用程序中设置用户照片。根据上述函数输出,我得到了正确的路径。例如, file:///storage/emulated/0/Documents/share_example_x_files/qt-logo.png
我还尝试通过以下方式设置 source: 来源:/storage/emulated/0/Documents/share_example_x_files/qt-logo.png
什么都没有改变。输出仍然::QML 图片:无法打开:file:///storage/emulated/0/Documents/share_example_x_files/qt-logo.png
我还在清单文件下添加了以下权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
感谢您的帮助
【问题讨论】:
标签: android qt permissions storage internal