CMake构建的Qt项目,使用label控件加载资源文件的图片发现加载了的解决方法

问题描述

我在Qt中的一个子项目下添加了资源文件,并把它交给主项目管理:
MIPlay子项目:

find_package(Qt5 COMPONENTS Widgets REQUIRED)

add_subdirectory(test)

file(GLOB src "src/*")
file(GLOB res "res/*.qrc")

set(MIPlayRes ${res} CACHE PATH "res of miplay")
add_library(${PROJECT_NAME} ${src})

主项目:

find_package(Qt5 COMPONENTS Widgets  REQUIRED)

add_subdirectory(MainWidget)

file(GLOB src "src/*")
file(GLOB res "res/*.qrc")
file(COPY ${MATDLL} DESTINATION ".")
add_executable(CognitivePlatform WIN32  main.cpp ${src} ${res} ${AmpliferRes}
               ${MonitorRes} ${MediaplayRes} ${MIPlayRes})

moshow.cpp:

QPixmap pixmap(":/MIPlay/imgs/left.png");
    if(pixmap.isNull()){
        qDebug() << "pixmap is NULL!!";
    }
    lab_Hand->setPixmap(pixmap);
    lab_Hand->setAlignment(Qt::AlignCenter);
    lab_Hand->adjustSize();

这串代码怎么都不行,试过各种方法,就是显示不了图片。我敢肯定我的资源文件肯定是编译进项目了的。卡了我一天。

解决方法

后来发现,他奶奶的,我在子项目的test项目下的CMakeLists.txt没有把资源文件编译进可执行文件里。
之前的:

find_package(Qt5 COMPONENTS Widgets REQUIRED)

add_executable(${PROJECT_NAME} main.cpp}

后来的:

find_package(Qt5 COMPONENTS Widgets REQUIRED)

add_executable(${PROJECT_NAME} main.cpp ${MIPlayRes})

就可以了。卡了我一天啊卧槽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值