这里要讨论的内容是,将一个 QML 文件放置到 qrc 资源中后,需要访问本地目录的文件,比如图片的时候,遇到的一个在 Windows 和 Linux(MeeGo)平台下表现不一致的 Bug,以及处理方法。
事件起因:
一个在资源文件中的 QML 需要引用本地的图片资源。在 PC(Windows)下面运行正常,但是下到手机就是不工作,开启调试模式,发现手机里的 QML 去 qrc:/home/user/image/ 目录下面去找制定的文件去了(应该是 /home/user/image/ 目录),并报错说找不到文件,这个路径前面多出的 qrc: 显然是错误的,但是明明指定的 /home 目录怎么就跑到 qrc:/home 去了呢,这个 qrc 前缀是怎么加上的呢?
在电脑上面运行程序的时候没有出现问题,更加奇怪,在网上搜罗一番,感谢强大的网友,已经有了回答(参考文末链接「QML Image获取资源路径的细节」):