【解决方案】Qt项目打包后,图片不能显示的一种可能原因

(因为刚刚接触qt,还不知道具体原因,这里只提供一种可能的解决方案,这个方案也可能不具有适用性)

我想把Qt程序打包成exe文件,参考了文章:(17条消息) QT程序打包成EXE_李子树呢的博客-CSDN博客_qt exe打包工程,结果在windeployqt创建应用程序发布包时,发现exe文件内控件label的pixmap的图片没有显示;但是项目在qt creator下release构建并运行时是有图片的。折腾了一会儿后发现,把原代码里pixmap【选择文件】->选择图片的过程变为【选择资源】->选择图片,再重新构建运行,再把此时的exe文件复制粘贴到打包的文件夹下就可以了

目录

一、问题描述

第一种问题操作

第二种问题操作

二、解决方案

三、其他补充


一、问题描述

下载了别人的项目源码到自己电脑里(源码:https://github.com/INnoVation-soO/qt-order-),文件夹结构如下:

【解决方案】Qt项目打包后,图片不能显示的一种可能原因_第1张图片

waiter项目结构如下:

【解决方案】Qt项目打包后,图片不能显示的一种可能原因_第2张图片 

目标:将waiter项目打包为可执行文件。

第一种问题操作

打开mainwindow.ui,对label控件的pixmap,点击右侧的黑三角->点击【选择文件】->在image文件夹里选择图片(这个image文件夹并不在项目内,具体位置见上方第一张的文件夹结构图)

【解决方案】Qt项目打包后,图片不能显示的一种可能原因_第3张图片

【解决方案】Qt项目打包后,图片不能显示的一种可能原因_第4张图片

 release构建并运行,图片能正常显示

 

【解决方案】Qt项目打包后,图片不能显示的一种可能原因_第5张图片

接下来进行打包,将release文件夹下的waiter.exe复制粘贴到打包程序的文件夹下,执行windeployqt的命令后,运行打包的程序,结果左侧控件label的图片不能正常显示:

(其他图片能显示是因为已经使用了解决方案) 

第二种问题操作

把故事线退回设置pixmap那里,点击右侧的黑三角->点击【选择文件】->进入waiter文件夹内的image文件夹->选择图片

【解决方案】Qt项目打包后,图片不能显示的一种可能原因_第6张图片

 然后如法炮制,重复上述打包操作,直到执行windeployqt的命令后,运行打包的程序,结果左侧控件label的图片仍然不能正常显示。

(题外话:如果从release切回debug的话,若出现:-1: error: No rule to make target '../01waiter/image/01.png', needed by 'debug/qrc_a01.cpp'.  Stop.报错,则可以尝试qmake并重新构建)

二、解决方案

故事线回到设置pixmap那里,点击右侧的黑三角->点击【选择资源】->release运行,然后按照打包的步骤正常进行,运行打包的程序,结果label的图片可以正常显示:

【解决方案】Qt项目打包后,图片不能显示的一种可能原因_第7张图片 

 

三、其他补充

我只知道这样的解决方案恰好能解决我的问题(多少有点瞎猫碰上死耗子),但具体为什么可以这样,或者说为什么那两个问题操作不能正常地显示图片,我就不清楚了……我是刚刚接触qt,很多地方不太熟悉,欢迎各位大佬指正,希望能帮助到遇到这个问题的大家,祝大家遇到的问题都能早日解决

 

你可能感兴趣的:(报错与发现与探索,qt)