Qt和QtQuick中的路径处理

在资源文件中的代码可省略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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值