问题描述
我在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})
就可以了。卡了我一天啊卧槽。