我正在对Creator中的表单进行更改,但是当我构建时,更改不会被“刷新”。 我已经远远没有从表单中删除每个元素并摆脱每个样式表但是当我构建项目时,我得到了相同的结果;好像我从来没有做过任何改变。 是什么赋予了?我错过了一些明显的东西吗(对我来说很明显......显然)
答案 0 :(得分:9)
我猜你在使用QtCreator 2.0?我发现了同样的奇怪问题。您有两种选择:
ui_{the_name_of_design}.h
。然后再次运行qmake
。make clean
或Build→Rebuild All 但第二种选择对我没有帮助。顺便说一下,为什么使用不同的构建目录比使用源代码更好。如果似乎没有应用某些更改,只需删除build dir的内容,一切都会正常。
干杯
答案 1 :(得分:1)
如果你的make程序没有注意到.ui文件中的更改,那么最有可能导致它没有调用uic
工具。尝试执行make clean
以查看是否有帮助,并检查构建日志以查看是否正在调用uic
。
答案 2 :(得分:1)
对我来说,解决方案是将BuildDirectory更改为代码所在的目录,而不是** - build-desktop目录。
答案 3 :(得分:1)
我偶然发现了这个问题,我注意到的一件事是我的程序仍然在后台运行而我不知道。通过任务管理器结束任务会修复它,您可以再次进行更改。
答案 4 :(得分:0)
一些建议:
make distclean
。答案 5 :(得分:0)
这个帖子有点过时但是因为我遇到了同样的问题,我想我会分享我是如何解决这个问题的。 我在QtCreator 2.4.1 / Qt 4.8.1下使用穷人的源代码控制方法逐步建立了一个ui:快照。有一次,我无意中创建了一个非阴影的构建项目。在随后的快照中,我将项目还原为阴影构建,此时,在构建中不再识别以ui形式添加的新窗口小部件。 解: 从源目录中删除过时的ui_ .h文件。 从shadaow构建目录中删除make和ui _ .h文件。 重建 最新生成的ui_ .h文件将重新出现在阴影构建目录中。 ui _ .h文件的副本不会出现在源目录中,表明过时文件在构建顺序中优先。不明显。
答案 6 :(得分:0)
我有这个问题,我通过更改项目路径来解决它。当我遇到这个问题时,我已经将项目存储在我的闪存中,然后我复制了项目文件夹,它也是在桌面上的构建文件夹,用QtCreator打开它,问题就解决了。
答案 7 :(得分:0)
问题确实是项目源目录中过时生成的文件。对于生成的ui_*.h
文件以及moc_*.*
文件,都会发生这种情况。现有答案未涵盖以下内容,因此我们继续:
要从项目源目录中删除生成的文件,而不影响Qt Creator设置或当前的阴影构建目录,有两种主要方法,也可以组合起来进行额外覆盖。
转到Qt命令提示符,转到项目源目录并运行以下命令:
qmake -r
make clean
make distclean
第一个将递归创建makefile。第二个将删除通过构建项目生成的所有文件。第3个将再次删除makefile。然后像以前一样继续使用Qt Creator中的阴影构建。
问题是,它会留下不属于项目的文件。因此,如果某些文件已从项目中删除,则相关生成的文件可能会保留,如果添加了具有相同名称的文件,则会导致问题。因此,即使在此之后,如果您知道已从项目中删除了文件,则最好不要验证没有ui_*
或moc_*
个文件。
使用您的版本控制软件首先提交或存储/搁置所有未提交的更改,然后删除所有未版本化(也被忽略)的文件。对于某些版本控制软件,这可能并不容易git clean -dxf
(注意,这也将失去未经修改的更改和Qt Creator的自定义项目设置),在这种情况下,可能更容易删除项目源目录并获得干净的结帐。
问题在于,如果某些生成的文件被意外添加到项目中,则不会使用此方法清除它们。因此,执行上面的步骤1仍然是一个好主意。
上述步骤应该同步,以便在步骤1之后,源目录中的任何文件(除了Qt Creators' projectname.pro.user
和可能的*~
备份文件)都应该在版本控制之下。