QT修改UI后运行不更新的问题

文章描述了一个在QtCreator中修改UI后,qmake无法自动更新页面的问题。开发者发现需要手动删除Makefile及其相关文件来强制更新。尝试勾选Shadowbuild未解决问题,最终解决方案是每次运行前进行重建。代码修改则可直接运行生效,但UI改动仍需此额外步骤。
摘要由CSDN通过智能技术生成

qt creator ui界面修改后运行不产生作用(本质分析)
参考了上述文章(在这里夸一下这篇文章,写的很好)对照自己的问题发现我的情况是:

  • .pro文件里包含了xx.ui文件,这没错;
  • ui_xx.h文件确实也根据UI修改的控件修改了代码,这也没错;
  • qmake依然没法做到更新页面
  • 删除Makefile,Makefile.debug,Makefile.Release后重新qmake可以更新页面。但问题在于再次修改UI控件后使用qmake依然不能更新,意思每调试一次就得删除一次上述文件才能执行更新,这也太麻烦了!

后来又查阅了一些资料同时尝试了一些别的方法比如勾选Shadow build,也没用。
最后得到一个方法:每次运行前重新构建一下,就可以了。
虽然也有点麻烦,但比删除文件方便些。
目前暂时还不知道我这种情况如何做到更简便。


新发现,代码修改可以直接运行生效,UI修改的还是得重新构建

### 回答1: 在QtUI界面,当我们尝试变样式表后却无法显示的原因可能有以下几种可能的情况。 首先,可能是我们在更样式表时出现了错误。样式表的语法非常严格,如果我们在书写样式表时出现了语法错误,可能会导致样式表无法生效。因此,我们需要仔细检查我们的样式表代码,确保没有出现任何错误。 其次,可能是我们没有将样式表应用到正确的部件上。在Qt,我们可以为每个部件单独设置样式表,以达到个性化的效果。如果我们没有将样式表设置到正确的部件上,就无法显示我们所期望的样式。因此,我们需要确保将样式表正确地应用到目标部件上。 此外,还可能是其他样式设置或部件属性的冲突导致了样式表无法显示。在Qt,样式表的设置会受到其他样式设置和部件属性的影响。如果其他设置或属性与我们的样式表发生冲突,就有可能导致样式表无法正确显示。因此,我们需要仔细检查我们的代码,查看是否有其他设置或属性与样式表冲突。 最后,可能是Qt的版本或环境问题。有时,Qt的不同版本或环境的设置可能会导致样式表无法正常显示。如果我们使用的是较早的Qt版本或没有正确配置Qt的环境,可能会导致样式表无法生效。因此,我们需要检查我们使用的Qt版本和环境设置,确保它们与样式表兼容。 针对以上可能的情况,我们可以逐一排除问题,找出导致样式表无法显示的具体原因,并进行相应的调整和修正,以使样式表能够正常显示在QtUI界面。 ### 回答2: 当我们在QtUI界面使用样式表来变界面的外观时,有时会遇到样式表修改后,界面没有显示出来的问题。造成这种问题的原因可能有以下几点: 1. 样式表的语法错误:样式表的语法非常严格,如果有错误的写法会导致样式表无法正确解析,从而不会生效。在编写样式表时,需要仔细检查语法是否正确。 2. 样式表选择器错误:样式表的选择器用于指定应用样式的对象,如果选择器错误,就会导致样式无法正确应用。在使用样式表时,需要确认选择器是否正确选择了要修改外观的对象。 3. 样式表优先级问题:样式表的优先级是由选择器的具体性和样式表的加载顺序决定的。如果多个样式表同时对同一个对象进行设置,那么会根据优先级决定最终的样式。可能是其他样式表的优先级高于我们修改的样式表,导致没有显示出来。 4. Qt样式引擎问题:有时候,Qt的样式引擎可能会出现一些bug或者限制,导致样式表无法正确应用。在这种情况下,我们可以尝试重新编译或者升级Qt来解决问题。 如果以上的情况都已经排除,但问题仍然存在,我们可以尝试使用Qt的调试工具来进一步查找问题所在。 ### 回答3: 当使用QtUI界面变样式表后不显示的原因可能有以下几种情况: 1. 代码错误:可能在设置样式表的过程存在代码错误,导致样式表无法正确应用。需要检查代码是否存在语法错误或逻辑错误,确保样式表的设置正确无误。 2. 样式表选择器错误:样式表的选择器需要正确指定界面的控件。如果选择器指定的控件不存在或选择器与实际控件不匹配,样式表将无法应用到界面上。可以使用Qt的Debug模式来查看控件的信息,确保选择器的准确性。 3. 样式表加载顺序问题Qt的样式表可以通过qApp->setStyleSheet函数进行全局设置,也可以通过单个控件的setStyleSheet函数进行局部设置。如果样式表的加载顺序不正确,可能会导致后面设置的样式表覆盖前面设置的样式表,从而导致界面上未显示指定的样式表。可以通过调整样式表的加载顺序来解决问题。 4. 样式表继承问题Qt的样式表是可以继承的,也就是说可以设置控件的通用样式表,然后通过子类进行继承并进行修改。如果样式表的继承关系没有正确设置,可能会导致样式表无法正确应用。需要检查样式表的继承关系,确保父类和子类之间的样式表设置正确无误。 以上是可能导致QtUI界面变样式表后不显示的一些常见原因,需要根据具体情况进行排查和解决。可以通过调试工具、日志输出等方式来查找问题所在,以便进行修复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值