这篇文章上次修改于 575 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

今天在将一个 qt 程序移植到 arm 版的银河麒麟系统上时,发现了一个奇怪的问题。

我有一个库,里面封装了一个等待框(LoadingWidget),等待框内置了一些等待图片,这些图片放到一个名为 images.qrc 的资源文件中。加载等待框时使用如下代码获取等待图片列表:

QDir loadingDir(":/images/loading");
foreach (auto f, loadingDir.entryInfoList()) {
    // do something...
}

这在 Windows 下是完全没问题的,然后到了 Linux 下居然不行了。

查了很多资料,最后找到了问题:我的主程序中有一个同名的资源文件 images.qrc,将库中的 images.qrc 改名后,图片成功加载。