2016-11-25 159 views
1

我在上周第二次发生了问题。它似乎随机发生。我改变了QML文件中的内容,保存它,运行应用程序,并看到我的更改没有生效。我重新运行应用程序,但它仍然没有生效。什么时候对QML文件所做的更改不生效?

第一次发生这种情况后,我做了一些git的东西(按此顺序:git stash save,回滚到旧版本,回到最新版本,git stash pop),它自行修复。第二次我没有这样做,但从Qt Creator菜单运行qmake并修复了它。

问题的原因是什么?

我正在使用Qt Creator 4.1.0。

+0

Qt已经有这个问题,只要我已经使用了它,这已经差不多7年了,甚至在QML之前,你不得不偶尔清理和重建所有的东西,以便反映出变化。不知道需要多长时间来修复它... – dtech

+0

您是否正在从资源中加载QML文件?如果是的话,你重建? 一般而言,我只是在开发过程中使用直接文件访问,因为这允许在应用程序运行时甚至可以重新加载 –

+0

@KevinKrammer:从资源加载,是的。 “运行”命令通常会在发生更改时自动重建我的项目,因此我没有手动重建,而是假设创作者将为我执行此操作。 –

回答

2

斯蒂芬我已经看到这种情况发生,从我之前已经阅读是一个知道是不是BUG的详细信息,可以发现:

https://bugreports.qt.io/browse/QTCREATORBUG-1627

的事情是,它似乎qtcreator是无法检测到更改qlm/qrc文件被更改,所以makefile不会被更新,因为qmake没有运行。

似乎他们不会被解决的bug,它已经有好几年了,qtcreator的解决方法是手动运行qmake并重建之后。

+0

对于qml文件的更改,仅运行qmake就足够了。我怀疑它是同一类型的错误,它需要每隔一段时间清理和重建所有的C++代码。 – dtech

+0

我同意但是非常讨厌这种情况发生的事实,好像它不可预测UI开发是一个问题。因此,我将尝试编译它发生的情况列表,并将分享回去:),所以即使它手动我们也可以知道qmake需要运行的所有情况:) – Kanekotic

+0

qmake通常不需要除非项目设置中的内容改变,否则运行。根据构建系统,例如make,生成的文件应该具有所有必要的更新规则,并且构建工具应该检测更改以及要运行的必需构建链。因此,这取决于正在使用哪种工具进行构建以及它如何检测更改 –

1

我只是再次遇到这个问题,这次尽管在每次运行之前努力运行qmake。

我想我找出了这次是什么原因造成的。这是我使用驻留在“应用程序输出”窗格工具栏中的小型运行按钮(实际称为“重新运行此运行配置”)。看起来像这个按钮具有运行而无需重建的奸诈财产。

解决方法是使用Ctrl + R或等效地沿着窗口左侧的垂直工具栏中的大运行按钮。


另一次问题不会消失,直到我删除myproject.pro.user文件。

相关问题