gpt4 book ai didi

c++ - Qt资源系统中文件系统路径的前缀有什么优势?

转载 作者:行者123 更新时间:2023-11-30 01:37:48 26 4
gpt4 key购买 nike

Qt resource file .qrc允许将嵌入文件拆分为不同的前缀

<RCC>
<qresource prefix="/qml">
<file alias="CustomWidget.qml">qml/CustomWidget.qml</file>
</qresource>
<qresource prefix="/icons">
<file alias="home.png">icons/home.png</file>
</qresource>
</RCC>

我经常看到开发人员使用如上例所示的前缀重做文件系统层次结构。但在我看来,从调用者代码的角度来看,它与此完全相同:

<RCC>
<qresource>
<file>qml/CustomWidget.qml</file>
<file>icons/home.png</file>
</qresource>
</RCC>

在这两种情况下,您都可以在 C++ 中使用具有相同语法的文件 :/qml/CustomWidget.qml

在文件系统路径上使用前缀+别名有什么优势吗?

最佳答案

这只是一种将资源 ID 与实际文件系统对象分离的方法。一旦定义了引用资源的前缀和别名,即使资源文件发生变化(即被另一个具有不同名称和路径的文件替换),代码也不会受到影响。

假设您有一个在许多应用程序之间共享的图像存储库,您可以像这样在 qrc 中引用文件:

<RCC>
<qresource prefix="/pics">
<file alias="logo">../../../../pictures/logos/logo-001.png</file>
</qresource>
</RCC>

代码在长文件路径上几乎是不可知的,资源是这样引用的:

QPixmap pix(":/pics/logo");

如果需要不同的 Logo ,或者存储库已移动到不同的位置,则只需编辑 qrc 文件:

<RCC>
<qresource prefix="/pics">
<file alias="logo">../../../new-repo/logos/logo-002.png</file>
</qresource>
</RCC>

关于c++ - Qt资源系统中文件系统路径的前缀有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49012614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com