【问题标题】:Access Qt resource files in VS 2017 with CMake使用 CMake 在 VS 2017 中访问 Qt 资源文件
【发布时间】:2017-06-24 15:20:37
【问题描述】:

我在使用 CMake 访问 VS 2017 项目中的 qt 资源文件时遇到问题。我能够使用 Qt Creator 访问 qrc 文件。我有以下问题:

  • 我应该把资源文件放在哪里?最好我想将资源文件放在根目录中。我已经尝试将文件放在根目录和它们将被调用的目录中。
  • 我应该对 CMakeLists.txt 文件进行哪些更改?
  • 如何引用资源文件?我已经尝试了所有可以在互联网上找到的说明。但它们似乎都不起作用。例如我尝试过:“:/prefix/filepath/filename”或“:prefix/filepath/filename”。

非常感谢!

【问题讨论】:

    标签: visual-studio qt cmake


    【解决方案1】:

    您可以将.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)

    那么你必须在你的目标上添加这个资源:

    add_executable(
       ${TARGET_PROJECT}
       ${PROJECT_SOURCES}
       ${PROJECT_HEADERS}
       ${PROJECT_RESOURCES})
    

    现在您的资源可以像往常一样在您的项目中使用:/menu_img/cancel_img

    【讨论】:

    • 非常感谢您的详细解释。在我将 resources.qrc 添加到 PROJECT_RESOURCE 后,CMake 会自动将文件名从 resource.qrc 更改为 qrc_resources.cpp。然后它说它找不到该文件。你能帮我理解为什么吗?
    • 创建文件qrc_resources.cpp是完全正常的(这是Qt将资源添加到二进制目标的方式)奇怪的是这个文件是在同一个文件夹中创建的文件。这表明我没有正确使用 CMake。所有 CMake 临时文件都应在另一个目录 build 上创建,例如,以避免弄脏您的项目根目录。
    • 我为混乱道歉。我想说 CMake 需要构建文件夹中的 .cpp 文件,但找不到它。我搜索了构建文件夹,发现了一些扩展名为“.depends”的文件。但是我没有找到 qrc 的 .cpp 文件。我已经将 CMAKE_AUTORCC 设置为开启。
    猜你喜欢
    • 2015-06-10
    • 2023-03-16
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    相关资源
    最近更新 更多