QtCreator Build 不会更新设计表单中的 UI 更改

问题描述 投票:0回答:4

我的 Qt 项目使用影子构建。
当我更改 MainWindow 表单(.ui 文件)时,我构建了项目,但我的程序没有更新 GUI。
如果我重建所有,GUI 将被更新。但重建非常非常慢。
我尝试创建一个新项目(带有一些标签的空 QMainWindow),修改一些文本。我构建并更新了 GUI。

如何在不重建所有项目的情况下正确使用影子构建?

qt qt-creator
4个回答
2
投票

如果更改

*.ui
文件名,也会出现同样的问题。

例如,将

yourUi.ui
更改为
myUi.ui

如果是这种情况,那么

ui_*.h
也应该更改,即
yourUi.ui
更改为
ui_myUi.h


0
投票

关闭 Qt Creator,转到项目目录并删除 .pro.user 文件,再次打开项目,这次 Qt Creator 将要求您通过选择用于构建项目的套件来配置项目。选择适当的套件并按“配置项目”按钮。应用你的影子构建。我希望它会起作用。


0
投票

您是否尝试过只运行 qmake(构建 -> 运行 qmake)?

编辑
根据评论的建议,我复制了评论以保留它。
看起来QtCreator正确地重建了shadow build目录中ui的.h文件,然后将其包含在源目录中,但没有重新生成。我不知道这是一个错误还是预期的行为,但快速解决方法可以是在影子构建目录中构建项目,将生成的 .h 文件复制回源目录中并再次构建。这适用于我的简单项目,不知道是否也适用于更大、更复杂的项目。或者不要使用影子构建


0
投票

当我将项目从 QtCreator 3.1.x 迁移到 12.0.1 时,出现此问题,当我修改 GUI 时,更改未反映在应用程序中。这是没有意义的,因为在查看 .ui 文件的内容时发生了更改,删除 makefile、moc* 中间文件等没有效果。

最后,我在构建设置中发现了影子构建选项,如果取消选中此选项,问题就解决了。我知道这没有意义,但它有效。

您可能会收到 错误:C1041:无法打开程序的数据库...如果多个 cl.exe 写入同一个文件 .PDB,请使用 /FS,这可以通过指示标志 (/FS) 解决插入.pro QMAKE_CFLAGS+=/FS

© www.soinside.com 2019 - 2024. All rights reserved.