Qt 创建者问题。构建项目时未显示 UI 更改
Posted
技术标签:
【中文标题】Qt 创建者问题。构建项目时未显示 UI 更改【英文标题】:Qt Creator problem. UI changes not showing when project is built 【发布时间】:2010-07-15 18:50:21 【问题描述】:我正在对 Creator 中的表单进行更改,但是当我构建这些更改时,并没有“刷新”。 我已经从表单中删除了每个元素并删除了每个样式表,但是当我构建项目时,我得到了相同的结果;就好像我从来没有做过任何改变一样。 是什么赋予了?我错过了什么明显的东西吗? (除了我以外的所有人都很明显......显然)
【问题讨论】:
我忘了提到这个项目是在早期版本的 Qt Creator 中创建的,我目前使用的是 v2.0.... 【参考方案1】:我猜您使用的是 QtCreator 2.0?我发现了同样奇怪的问题。你有两个选择:
从项目的构建目录中删除ui_the_name_of_design.h
。然后再次运行qmake
。
make clean
或构建 → 全部重建
但第二个选项甚至对我没有帮助。顺便说一句,这就是为什么使用与源所在位置不同的构建目录是好的原因。如果某些更改似乎没有应用,只需删除 build dir 的内容,一切正常。
干杯
【讨论】:
如果您的项目文件夹中有ui_mainwindow
,请将其删除并再次运行qmake
以重新创建该文件:)
同样适用于 Qt(creator) 的更高版本,3.5.0 版也有同样的问题。【参考方案2】:
最有可能的原因是您的 make 过程没有注意到 .ui 文件中的更改,因此它没有调用 uic
工具。尝试执行 make clean
以查看是否有帮助,并检查您的构建日志以查看是否正在调用 uic
。
【讨论】:
【参考方案3】:对我来说,解决方案是将 BuildDirectory 更改为代码所在的同一目录,而不是 **-build-desktop 目录。
【讨论】:
【参考方案4】:我也偶然发现了这个问题,我注意到的一件事是我的程序仍在后台运行,而我并不知道。通过任务管理器结束任务修复它,您可以再次进行更改。
【讨论】:
【参考方案5】:一些建议:
执行make distclean
。
使用影子构建目录。不建议在“内部”构建源代码。
检查您的计算机时钟以及文件的日期和时间。
【讨论】:
【参考方案6】:这个帖子有点过时了,但由于我遇到了同样的问题,我想我会分享我是如何解决这个问题的。 我一直在使用穷人的源代码控制方法:快照,在 QtCreator 2.4.1/Qt 4.8.1 下逐步构建一个带有设计师的 ui。有一次,我无意中创建了一个非阴影构建项目。在随后的快照中,我将项目恢复为影子构建,此时在 ui 表单中添加的新小部件在构建中不再被识别。 解决方案: 从源目录中删除陈旧的 ui_.h 文件。 从你的影子构建目录中删除 make 和 ui_.h 文件。 重建 最新生成的 ui_.h 文件将重新出现在影子构建目录中。 没有 ui_.h 文件的副本出现在源目录中,表明陈旧文件在构建顺序中具有优先权。不明显。
【讨论】:
【参考方案7】:我有这个问题,我通过更改项目路径来解决它。当我遇到这个问题时,我已经将项目存储在我的闪存中,然后我将项目文件夹和它的 build 文件夹也在桌面上并用 QtCreator 打开它,问题就解决了。
【讨论】:
【参考方案8】:问题确实是项目源目录中的陈旧生成文件。生成的ui_*.h
文件和moc_*.*
文件都可能发生这种情况。现有答案未涵盖以下内容,因此我们开始:
要从项目源目录中删除生成的文件,而不影响 Qt Creator 设置或当前的影子构建目录,有两种主要方法,也可以组合使用以增加覆盖率。
转到 Qt 命令提示符,转到项目源目录并运行以下命令:
qmake -r
make clean
make distclean
第一个将递归创建生成文件。第二个将删除通过构建项目生成的所有文件。第三个将再次删除生成文件。然后像以前一样继续使用来自 Qt Creator 的影子构建。
这样做的问题是,它会留下不属于项目的文件。因此,如果某些文件已从项目中删除,则可能会保留相关生成的文件,如果重新添加同名文件,则会造成麻烦。因此,即使在此之后,如果您知道您已经从项目中删除了文件,最好确认没有留下任何 ui_*
或 moc_*
文件。
使用您的版本控制软件首先提交或存储/搁置所有未提交的更改,然后删除所有未版本控制(也被忽略)的文件。对于某些版本控制软件,这可能不像git clean -dxf
那样容易(注意,这也会丢失未提交的更改和 Qt Creator 的自定义项目设置),在这种情况下,删除项目源目录并获得干净的结帐可能会更容易.
这样做的问题是,如果某些生成的文件被意外添加到项目中,它们将不会被清理。因此,执行上面的步骤 1 可能仍然是一个好主意。
上述步骤应该同步,以便在第 1 步之后,源目录中的所有文件(Qt Creators 的projectname.pro.user
和可能的*~
备份文件除外)都应该在版本控制之下。
【讨论】:
以上是关于Qt 创建者问题。构建项目时未显示 UI 更改的主要内容,如果未能解决你的问题,请参考以下文章
Cordova + Xcode 7.3 (html + Javascript) 在构建和模拟时未更改或更新