关于QT修改了UI文件重新运行界面却没变化的问题
目录1. 核心原因uic 没有重新编译2. 影子构建 问题3. CMake 或 qmake 项目文件配置问题4. Qt Designer 保存路径错误5. 极端情况C 缓存/旧对象6. 检查运行路径如果以上你都排除了还有一个问题也是我遇到的问题其实就是第一点和第二点的结合那就是可能你程序根目录下存在对应的那个ui_xxxx.h 文件。这里注意是.h文件不是.ui文件如果你误删了.ui文件且没有备份那你就要重新搭建ui笔者之前就是误删了ui文件还好有备份不然有得忙的。写在最后在接手QT项目时遇到了一个很奇怪的问题就是标题所说清理后重新编译也没用甚至将build文件删除后重新编译运行也解决不了后面终于找到问题。下面详细说一下排除步骤和解决方案1. 核心原因uic 没有重新编译当你保存.ui文件XML格式时Qt 的用户界面编译器需要将其转换成 C 代码通常是ui_xxxx.h文件。症状直接点运行程序没有重新执行uic步骤导致链接的还是旧的ui_xxxx.h。解决方法执行清理操作在 Qt Creator 中点击菜单栏构建-清理项目然后再点击构建-运行 qmake最后重新构建运行。手动删除构建目录关闭 Qt Creator找到你的项目构建目录通常在项目文件夹的同级目录下名字类似build-项目名-Desktop_Qt_版本号手动删除整个文件夹然后用 Qt Creator 重新打开项目并运行。这是最彻底的方法。2. 影子构建 问题如果你启用了“影子构建”源代码和构建文件是分开存放的。检查如果你修改了.ui文件但构建目录里的ui_xxxx.h没有更新或者程序运行的时候读取了错误路径下的资源。解决同样建议执行清理项目和重新运行 qmake。3. CMake 或 qmake 项目文件配置问题有时候项目文件没有正确添加对 UI 文件的依赖。如果你用的是 CMake打开你的CMakeLists.txt检查是否使用了qt_wrap_ui或者是否通过set将.ui文件添加到了源文件中。确保 UI 文件被列在add_executable或target_sources中。修改后需要重新运行 CMake在 Qt Creator 中点构建-运行 CMake。如果你用的是 qmake确保.ui文件确实在.pro文件的FORMS变量中例如FORMS mainwindow.ui4. Qt Designer 保存路径错误如果你在 Qt Designer 中编辑点击保存时可能保存到了别的路径或者保存的文件名不对。检查在 Qt Creator 的项目文件树中右键点击你的.ui文件选择“打开方式” - “普通文本编辑器”。看看文件修改时间是否是你刚才保存的时间内容是否确实有变化。如果文件内容没变说明你刚才保存到别的地方去了。5. 极端情况C 缓存/旧对象如果你的界面中有重命名的信号/槽或者构造函数里使用了旧的指针。操作点击构建-重新构建项目会全量编译一次。如果还不行尝试删除整个构建目录方法同第一条。6. 检查运行路径如果你修改的是资源文件如图片或外部加载的.ui文件如果你用了QUiLoader动态加载可能是运行程序的工作目录不对导致加载了旧的资源。如果以上你都排除了还有一个问题也是我遇到的问题其实就是第一点和第二点的结合那就是可能你程序根目录下存在对应的那个ui_xxxx.h文件。这里注意是.h文件不是.ui文件如果你误删了.ui文件且没有备份那你就要重新搭建ui笔者之前就是误删了ui文件还好有备份不然有得忙的。找到你对应的.h文件后直接删掉然后重新构建编译应该就没问题了。个人觉得应该是因为一些奇怪的原因导致qt默认加载的是根目录下的ui_xxxx.h文件而不是构建目录下的ui_xxxx.h文件所以出现这样奇怪的问题。写在最后回顾前段时间的项目开发收获颇丰。由于是边做边学整个项目的技术架构没能及时详细整理略显遗憾。目前项目源码约有两万行过程中用到的技术栈包括但不限于QModbus TCP通信、QCustomPlot数据可视化、海康威视SDK二次开发等。此外在算法和设计模式的实践上也有一些心得后续我会将这些经验逐一整理成文既是对自己的沉淀也希望能给遇到类似需求的开发者一些参考。与此同时我也意识到自己在 C 基础上还不够扎实。之前是边学 Qt 边补 C导致很多概念“会用但说不透”。别人不是戏称qt里使用的c是q吗“Q”这个戏称确实精准地描述了Qt学习者的普遍困境很多人学Qt时都是直接拖控件、connect信号槽、用QStringList觉得C也不过如此。但当项目规模变大、遇到性能瓶颈、或者需要深入定制时才发现自己站在冰面上——Qt帮你封装得太好了以至于你根本看不见底层的C在干什么。所以接下来我计划系统性地深入学习 C并会在此分享学习笔记与大家共同进步。另外我还曾基于STM32实现过一个Modbus RTU 主站此外还有一些涉及裸机架构与设计模式的思考。后续也会重新梳理其关键实现细节一并分享出来。技术之路既是积累也是梳理。欢迎交流共同成长。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2408697.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!