具体情况并不重要,但是特别是我是用.png文件制作QIcon对象(属于Qt库的一部分)。为此的构造方法采用的字符串应为文件路径
我发现,我可以使用":/Icons/controller.png"
之类的东西简单地代替构造路径,而仍然可以正确检索和显示图标。
我的项目很大,因此我不会写出层次结构以及文件相对于其他所有文件的位置,但是它们至少处于3度的分离度。因此,我认为我不了解某种文件搜索机制。有人能猜出这里发生了什么吗?
答案 0 :(得分:0)
:/
路径是Qt Resource System中的路径。
您有一个QRC文件,该文件已编译并与可执行文件捆绑在一起。它引用图像。
例如您的qrc文件包含以下内容:
<RCC version="1.0">
<qresource>
<file>Icons/controller.png</file>
</qresource>
</RCC>
然后在您的构建过程中使用RCC编译器对其进行编译。该文件然后与您的exe链接。
默认资源会自动注册,但是您也可以将资源编译为外部RCC捆绑包,并在运行时使用QResource::registerResource("/path/to/myresource.rcc");