在资源文件中的代码可省略qrc:// 支持资源文件目录的相对路径表示法
在可执行文件中的代码可省略file:// 支持文件目录的相对路径表示法
QtQuick中,若qml文件在资源中,访问其他资源文件可以省略’qrc:’
Image {
id: img
width: 200
height: 200
source:"1.png" //访问qrc中的1.png
}
等同于:
Image {
id: img
width: 200
height: 200
source: "qrc:/1.png" //访问qrc中的1.png
}
QtQuick中,访问外部文件夹,加上file:// 并且是绝对路径!
//访问内部存储文件夹 org.qtproject.xml为安卓中本程序的包名
source="file:///data/data/org.qtproject.xml/files/test2.jpg";
//访问SD卡
source="file:///mnt/sdcard/test1.jpg";
C++中,访问外部文件夹
// 访问内部存储 org.qtproject.xml为安卓中本程序的包名
"/data/data/org.qtproject.xml/files/test2.jpg"
//访问SD卡
source="/mnt/sdcard/test1.jpg";
安卓中当前路径为内部存储文件夹,因此获取文件夹绝对路径只需要知道当前路径
QDir dir;
qDebug()<<dir.currentPath();
//输出:"/data/data/org.qtproject.xml/files"
部分类支持安卓语法的目录 已知的有 ini操作 和 webview,:
"file:///android_asset/info.ini"
"file:///android_asset/index.html"
使用Qt和QtQuick混合编程,C++提供路径给QtQuick:
Image {
id: getbinimg
width: 200
height: 200
}
......
...
myapp.savebin(x.responseText,"test2.jpg");//调用C++保存jpg 此处C++在可执行文件中 用相对路径即可
//把保存的文件显示到image中 此处是qml文件
getbinimg.source="file:///"+myapp.dir+"/test2.jpg";
myapp:
#ifndef QMLCLASS_H
#define QMLCLASS_H
#include <QObject>
#include<QDir>
class QmlClass : public QObject
{
Q_OBJECT
Q_PROPERTY(QString dir READ getdir )
public:
explicit QmlClass(QObject *parent = 0);
QString getdir()
{
return QDir::currentPath();
}
signals:
public slots:
};
#endif // QMLCLASS_H