QT UI界面更改后,运行后显示出来的却没有更改

博客主要讨论QT中UI更改无效的问题。有人认为需在工程目录下复制和覆盖ui_XX.h文件来解决,但作者发现将构建目录指定到当前工程位置即可,无需复杂操作。原因是更改后的UI产生的UI_XX.h文件不在当前工程下,导致运行时无法获取改动内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多人说的是是工程目录下的文件没及时更新

需要

1.找到project构建的目录,复制ui_XX.h

2.找到.pro的目录(工程文件存放处),覆盖ui_XX.h

3.运行

我发现只要把自己构建的目录指定到当前工程位置就可以,不需要上诉这样复杂操作,每次改动都去复制。

产生的原因是你更改后的UI,产生的UI_XX.h文件并没有在你当前工程下,当前工程运行时无法获取你改动后的那个UI_XX.h文件,所以才会更改后无效。

构建目录与项目一直,如下

### Qt5 UI界面修改后的处理方法 当Qt5项目的UI界面修改后,为了确保这些更改能够在程序中生效并顺利编译运行,有几种常见的方式可以采取。 对于`xxx.ui`文件来说,这是一个XML描述的图形化界面布局文件,在每次改动之后理论上应该通过uic工具转换成对应的头文件如`ui_xxx.h`以便于编译器识别。然而有时会出现即便清理了构建产物再重新建立也无法触发这一过程的情况[^1]。此时可以直接调用命令行中的uic指令手动指定输入输出路径来强制生成最新的`.h`文件: ```bash uic -o ui_widget.h widget.ui ``` 另外一种解决方案涉及到调整构建配置选项——即关闭影子构建(Shadow Build)。所谓影子构建是指在一个独立目录下完成整个工程的所有中间件以及最终目标文件创建的过程;这样做有助于保持源码树整洁干净不受干扰。但是这也会带来一个问题就是可能阻止了一些必要的资源更新机制正常工作。因此可以在设置里暂时去掉这个勾选项让IDE知道需要重新解析所有的UI定义从而达到预期效果[^2]。 如果上述两种方式都不能解决问题,则还可以考虑更彻底的办法比如移除Makefile及其变体等临时文件后再执行一次完整的qmake操作以重建整个项目结构。不过需要注意的是这种方法比较激进可能会破坏某些自定义设定所以应当谨慎行事[^3]。 综上所述,针对不同情况可以选择合适的方式来应对UI变更无法反映的问题,具体取决于个人开发习惯和实际环境差异等因素影响。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值