我们可以加载图像到 QPixmap
做
QPixmap("image.png");
然后我们将 image.png
放在根项目文件夹中,它可以在 Windows 上运行。我的意思是,可执行文件会找到图像。
我们也可以在 macOS 上轻松编译 Qt 项目。但是 macOS 可执行文件是不同的,它是一种文件夹,实际的可执行文件在下面,实际上在相对于图像的不同路径中。因此在运行时不会找到图像。
处理该问题的一种方法是
#ifdef Q_OS_MACX
// Code that will only be compiled under MAC OS X
#endif
然后我们在代码库中到处重复这个,问题就会得到解决。有没有替代的单发解决方案?这样就没有必要更改所有代码库,或许可以让 macOS 可执行文件认为它在另一条路径中?
最佳答案
我可以看到两种实现它的方法。
第一个是获取可执行文件夹位置(使用 main
参数)并使用相对于此文件夹的路径。
我已经在这里提供了一个示例:How can i access resources in c++ without setting the full path .
第二个是使用 Qt resource system .
它允许您将资源嵌入到可执行文件中。
PS(编辑): 我回答的有点晚了(写的时间太多了:))。已经给出的答案很好。
关于c++ - 如何引用外部文件,即 Win/macOS Qt 项目中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57920185/