题记:最近在做QT的一个串口助手配合下位机实现一些功能,遇到的一些bug,搜索了好久又尝试了好久才解决掉,解决方法放出来给遇到同样问题的小伙伴参考一下。
题目的报错出现在我想要调用Qicon为我封装的小程序做一个图标的过程中,参考搜索到的解决方案,自我检查与尝试并解决该问题的步骤如下(基于Windows的QT Creator开发):
一、图标的格式是否为ICO图片
(ICO转换网站:ConvertIcon is now Convert.App! Convert icons, images, files, units and more.)
可以先去网络上找一张自己喜欢的图下载,在此网站中打开转换,出现有ICO后缀即可,不需手动去打.ico后缀(不然得到的可能就是.ico.ico后缀)。
二、检查图片是否与.pro文件在同一路径下(图片命名要与下文描述代码一致)
最简单的办法就是放在同一路径下啦,这样就不用自己去创建路径。
三、检查完上述的问题之后开始进行对代码的处理
新建C++源文件,添加到工程中
选择C++ source File,选择后命名文件xxxx.rc(这里的命名没有要求,但是后缀一定要是.rc,手打上去,不要忘记!!!)
检查对应的.pro文件(避免打开多个工程加错文件的情况)
四、添加文件描述,补全相关代码
4.1 pro文件修改,添加代码
RC_FILE += logo.rc(logo是我图标的文件名,这里不要无脑粘贴,要与自己的图片一致);
4.2 cpp文件添加QIcon设置语句
setWindowIcon(QIcon("./logo.ico"));(注意文件名)
这里注意我添加的位置,看网络上有人说这句代码添加在main.cpp,但是我放在初始化这里了,仅供参考。
4.3 在第三步新建的文件中添加图片描述代码
IDI_ICON1 ICON DISCARDABLE "logo.ico"
新建后形成的文件就是这个other files(看到也有其他的新建选择QT—>sourse文件,产生的文件名是不一样的,这里仅供参考),点击logo.rc(这里不要混淆,因为我的图片名是logo.ico,文件名是logo.rc),添加如上描述代码。
4.4 解决问题的关键一步
走完上述工作,编译后老是报错,查看详情如下:
No rule to make target '../XXXX.rc', needed by 'debug/XXXX_res.o'. Stop.
于是怀疑图片并没有完全加进来(这里因为经验浅我也不懂为什么引用了文件也添加描述了但是似乎没有真正建立起连接,于是我试着将图片文件加到该文件夹里了,就是图上的logo.ico),添加现有图片文件进来,清除后重新构建,问题解决!(^-^)V耶!
当然,以上的方法仅仅是个人尝试解决的思路和办法,不一定适用所有,谨慎参考。
尾记:经验不足的时候参考别人的固然重要,毕竟已经是很多人走过的路,可以节省很多精力。但是copy别人代码的时候也要考虑和自己代码的兼容性,着重去检查格式方面(我真的在这上边磕磕绊绊好多次,HHHH),然后就是有错百度别人的方法,但是也要看看自己的错误详情,弄清楚方向结合起来多试一试。
最后祝大家的代码都一调即通,Bug全无啦!!!!!