Qt中修改了UI文件后编译,修改总是不生效问题的解决办法

遇到过几次,采取了以下措施仍不生效,编译后运行仍显示修改前的界面。Qt新手遇到这个问题可能抓瞎了,下面的解决办法可以参考一下:

  1. 重新执行qmake

  2. 重新执行qmake,清理项目,重新构建项目

  3. 把build目录下所有编译过程生成的文件全部删除,只保留目录结构,再重新构建项目

  4. 把工程目录下的.user文件删除,只保留工程文件、头文件、源文件、UI文件,然后重新运行qt creator,重新配置项目,再进行编译。

采取以下措施后,修改生效:

  1. 原本工程使能了shadow build,将该项勾选去掉,编译后发现修改生效了;

  2. 重新勾选shadow build,重新编译发现修改也生效了。再修改一次界面,再次编译,发现又没有生效。

猜测原因:

  1. 之前从另一台设备复制了代码过来,可能把.user文件一起复制过来了,那台设备上没有勾选shadow build,直接复制过来导致设置有冲突?

实际原因:

  1. 确实跟复制代码有关,但没有复制.user文件,而是在不勾选shadow build时,编译生成的ui_xxxxx.h文件放在源码目录下,复制代码时一起复制了过来,导致本地工程编译时虽然在build目录下生成了新的ui_xxxxx.h文件,但编译时引用的总是源码目录下的旧ui_xxxx.h文件,所以修改一直没被编译进去。

最终解决办法:

  1. 勾选shadow build,将工程目录下的ui_xxxxx.h文件全部删除,重新编译,问题解决!

教训:

  1. 切换shadow build模式时,一定要检查是否遗留了ui_xxxx.h文件忘记删除了。

  • 23
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值