我的 Qt 项目使用影子构建。
当我更改 MainWindow 表单(.ui 文件)时,我构建了项目,但我的程序没有更新 GUI。
如果我重建所有,GUI 将被更新。但重建非常非常慢。
我尝试创建一个新项目(带有一些标签的空 QMainWindow),修改一些文本。我构建并更新了 GUI。
如何在不重建所有项目的情况下正确使用影子构建?
如果更改
*.ui
文件名,也会出现同样的问题。
例如,将
yourUi.ui
更改为 myUi.ui
。
如果是这种情况,那么
ui_*.h
也应该更改,即yourUi.ui
更改为ui_myUi.h
。
关闭 Qt Creator,转到项目目录并删除 .pro.user 文件,再次打开项目,这次 Qt Creator 将要求您通过选择用于构建项目的套件来配置项目。选择适当的套件并按“配置项目”按钮。应用你的影子构建。我希望它会起作用。
您是否尝试过只运行 qmake(构建 -> 运行 qmake)?
编辑
根据评论的建议,我复制了评论以保留它。
看起来QtCreator正确地重建了shadow build目录中ui的.h文件,然后将其包含在源目录中,但没有重新生成。我不知道这是一个错误还是预期的行为,但快速解决方法可以是在影子构建目录中构建项目,将生成的 .h 文件复制回源目录中并再次构建。这适用于我的简单项目,不知道是否也适用于更大、更复杂的项目。或者不要使用影子构建
当我将项目从 QtCreator 3.1.x 迁移到 12.0.1 时,出现此问题,当我修改 GUI 时,更改未反映在应用程序中。这是没有意义的,因为在查看 .ui 文件的内容时发生了更改,删除 makefile、moc* 中间文件等没有效果。
最后,我在构建设置中发现了影子构建选项,如果取消选中此选项,问题就解决了。我知道这没有意义,但它有效。
您可能会收到 错误:C1041:无法打开程序的数据库...如果多个 cl.exe 写入同一个文件 .PDB,请使用 /FS,这可以通过指示标志 (/FS) 解决插入.pro QMAKE_CFLAGS+=/FS