遇到过几次,采取了以下措施仍不生效,编译后运行仍显示修改前的界面。Qt新手遇到这个问题可能抓瞎了,下面的解决办法可以参考一下:
重新执行qmake
重新执行qmake,清理项目,重新构建项目
把build目录下所有编译过程生成的文件全部删除,只保留目录结构,再重新构建项目
把工程目录下的.user文件删除,只保留工程文件、头文件、源文件、UI文件,然后重新运行qt creator,重新配置项目,再进行编译。
采取以下措施后,修改生效:
原本工程使能了shadow build,将该项勾选去掉,编译后发现修改生效了;
重新勾选shadow build,重新编译发现修改也生效了。再修改一次界面,再次编译,发现又没有生效。
猜测原因:
之前从另一台设备复制了代码过来,可能把.user文件一起复制过来了,那台设备上没有勾选shadow build,直接复制过来导致设置有冲突?
实际原因:
确实跟复制代码有关,但没有复制.user文件,而是在不勾选shadow build时,编译生成的ui_xxxxx.h文件放在源码目录下,复制代码时一起复制了过来,导致本地工程编译时虽然在build目录下生成了新的ui_xxxxx.h文件,但编译时引用的总是源码目录下的旧ui_xxxx.h文件,所以修改一直没被编译进去。
最终解决办法:
勾选shadow build,将工程目录下的ui_xxxxx.h文件全部删除,重新编译,问题解决!
教训:
切换shadow build模式时,一定要检查是否遗留了ui_xxxx.h文件忘记删除了。
感谢
原文链接:https://blog.csdn.net/josephfeng/article/details/86693012