今日遇到一个奇怪的问题,描述如题。
网上搜索了一些解决方案,说的不是很清楚,经过一些时间的摸索,这里总结一下解决方法。
ui源文件到界面显示的原理可以网上搜索,这里不再描述。简单讲就是先要从*.ui生成ui_*.h然后再编译,所以界面未更新实际上是因为ui_*.h这个文件没有更新导致的。
出现此问题后我尝试了以下几个方法:
1,在生成目标的文件夹内找到ui_*.h,复制到源代码文件夹内覆盖原来文件,成功
2,删除源代码文件夹内ui_*.h后,clear all 然后再重新编译,失败。
3,uic *.ui -o ui_*.h 失败,生成的ui_*.h是空的
根治的方法:
项目设置文件.pro内增加 UI_DIR=./UI,同时删除掉源代码目录中ui_*.h,clear all,->qmake->rebuilt all
总结:导致ui_*.h文件没有更新的原因是源代码中#include ui_*.h的位置和实际生成的位置不同,引用的是老的ui_*.h,设置UI_DIR后就规定了位置于是不会出错了。
分类:
Qt
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2021-07-22 OpenCV 几何图像变换-cv::getAffineTransform(仿射变换)
2021-07-22 OpenCV 特征点识别与findHomography算法过滤