qt修改完ui文件起不到作用

一.背景

在使用qt中经常会用到影子模式,即把编译生成的文件放到源代码目录以外的地方,比如build目录,以起到代码整洁的目的.

使用这种模式经常会遇到一些问题:

比如qt修改ui文件,运行后却没有更新.原因是程序中使用的ui_xx.h文件不是最新的文件.

二.解决办法:

方法1: 取消影子构建,此后构建目录与源码处于同一目录,每次编译更新程序使用的UI文件 

方法2:项目设置文件.pro内增加 UI_DIR=[ui_xx.h相对编译目录的相对路径或者自己的绝对路径],同时删除掉源代码目录中ui_*.h,clear all, -> qmake -> rebuilt all (注意qmake用来生成makefile,而build用来编译链接代码.)

(如果不写UI_DIR, ui_xx.h应该默认就是生成在编译目录下,至于为何当时没有正确更新,可能的原因是makefile是过期的吧,这个待再次遇到后验证)

参考文章:

1.https://blog.csdn.net/qq_40194498/article/details/80049258

2.https://blog.csdn.net/cokewei/article/details/6639960

原文地址:https://www.cnblogs.com/Stephen-Qin/p/13276034.html