你可以把你的.qrc
文件放在你想要的位置,对于我的项目我可以在/res
文件夹中做,但是你可以选择。您可以在资源上添加文件,手动编辑.qrc
文件作为正常的xml文件。这里一个简单的例子:
<RCC>
<qresource prefix="/menu_img">
<file alias="cancel_img">icons/cancel-512.png</file>
<file alias="open_img">icons/folder-512.png</file>
<file alias="print_img">icons/printer-512.png</file>
</qresource>
</RCC>
在这个资源文件的图像文件夹icons
内,.qrc
在外面。
您.qrc
文件已准备就绪(假设你使用QT5),你必须添加到您的CMakeList.txt
这一行后:
qt5_add_resources(PROJECT_RESOURCE path_to_rosource_file/resources.qrc)
然后对你的目标,你必须添加此rosource:
add_executable(
${TARGET_PROJECT}
${PROJECT_SOURCES}
${PROJECT_HEADERS}
${PROJECT_RESOURCES})
现在你的资源是可用的项目照常:/menu_img/cancel_img
T内详细解释很多。在将resources.qrc添加到PROJECT_RESOURCE后,CMake会自动将文件名从resource.qrc更改为qrc_resources.cpp。然后它说它找不到该文件。你能帮我理解为什么吗? – DavidY
创建文件“qrc_resources.cpp”是非常正常的(这是Qt向你的二进制目标添加资源的方式)奇怪的是,这个文件是在同一个文件夹中创建的,与其他文件一样。这表明你不正确地使用CMake。例如,所有的CMake临时文件应该在另一个目录“build”上创建,以避免弄脏你的项目根目录。 – Elia
我对此感到抱歉。我试图说CMake期望生成文件夹中的.cpp文件,但无法找到它。我搜索了构建文件夹并找到了一些扩展名为“.depends”的文件。但是我没有找到qrc的.cpp文件。我已经将CMAKE_AUTORCC设置为打开。 – DavidY