原因:
Qt程序使用的UI.h文件并不是最新的UI文件,最新的ui.h在bulid文件夹里面了,软件依旧使用旧的ui.h文件。简单讲就是先要从*.ui生成ui_*.h然后再编译,所以界面未更新实际上是因为ui_*.h这个文件没有更新导致的。
解决办法:
1.
1,在生成目标的文件夹内找到ui_*.h,复制到源代码文件夹内覆盖原来文件,成功
2,删除源代码文件夹内ui_*.h后,clear all 然后再重新编译,失败。
3,uic *.ui -o ui_*.h 失败,生成的ui_*.h是空的
根治的方法:
项目设置文件.pro内增加 UI_DIR=./,同时删除掉源代码目录中ui_*.h,clear all,->qmake->rebuilt all
总结:导致ui_*.h文件没有更新的原因是源代码中#include ui_*.h的位置和实际生成的位置不同,引用的是老的ui_*.h,设置UI_DIR后就规定了位置于是不会出错了。
2.
取消影子构建,此后构建目录与源码处于同一目录,每次编译更新程序使用的UI文件