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。然后再次运行qmakemake 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 更改的主要内容,如果未能解决你的问题,请参考以下文章

构建解决方案时未构建 Visual Studio 特定项目

在 Windows 上编译静态 Qt 构建时未定义的引用

Cordova + Xcode 7.3 (html + Javascript) 在构建和模拟时未更改或更新

Qt 项目 C2872 错误,生成的 ui 文件中的符号不​​明确

构建 .dll 时未找到 GCC 选项

Xamarin 项目在部署到 App Store 时未应用一些更改