【解决方案】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-),文件夹结构如下:

522cc011fd824cb897ee50cfd9ed11ba.png

waiter项目结构如下:

29a6fbba882641eda01be7157f3b9b55.png 

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

第一种问题操作

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

bac313bc01994b7096c7097fbadf10ef.png

3fe3efd64eef41cd8f45f1bd33aca296.png

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

4721a26368304bf190632b26ef813b0f.png

 

f4795064b0674fcdb6c9bee03b1c579d.png

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

ec9261be2270413bbfdaefe9ffdf1d8f.png

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

第二种问题操作

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

7068fc675eec48dcbe6c995b15a0cb25.png

 然后如法炮制,重复上述打包操作,直到执行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的图片可以正常显示:

973b421a43f34c0fa03838e38fa6cf86.png 

9dd8ef3f5f4f4b4ca7bb1a5e713b177e.png

 

三、其他补充

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

 

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值