Qt设计师没有更新gui

Chr*_*ris 36 user-interface qt

之前有人在Qt设计器中写了一个GUI,现在我必须修改一些小部件(即添加一个按钮/功能).

前提:我在Designer中添加新功能/对.ui文件进行任何修改.我可以进入编辑模式,看到这会改变.ui文件的xml格式

问题:当我构建并运行Qt时,旧版本的.ui就是显示的内容(没有我的功能升级).我试着清理一切并运行qmake,但无济于事.

为什么会发生这种情况的任何想法?

iro*_*nic 97

我有同样的问题,当我在"项目"模式中禁用"阴影构建"时,它已解决.

UPD:仍然收到这个答案的赞成票让我很难过,原因有两个

  • 这是微不足道的
  • 这个问题在将近5年之后仍然存在

  • 这真的值得更多的选票!在我看来,这将是答案. (4认同)
  • 只是一个旁注:在禁用"Shadow Build"选项使其工作后,我不得不重启QT. (3认同)
  • 这为我解决了这个确切的问题。.h 文件没有从 XML 更新,直到我取消选中它。 (2认同)

use*_*284 10

我可以在不改变Shadow Build配置的情况下解决这个问题.在我的项目中,我想用输出文件构建build-ProjectName-Debug中

但QtCreator并不聪明,无法检查文件moc_FileName.cppui_FileName.h是否存在于构建目录中.出现此问题的原因是,如果这些文件moc_FileName.cppui_FileName.h进入项目目录,QtCreator将使用它们,并且无法识别对.ui文件的任何修改.

这个问题的解决方案对我来说很容易:从项目目录和Rebuild中删除所有moc_FileName.cppui_FileName.h.这些文件将被创建到build-ProjectName-Debug中,所有修改都将在那里.


Liz*_*Liz 9

当您更改.ui文件时,有人需要uic.exe在该文件上运行以生成头文件.例如,对于一个名为的窗口MyWindow.ui,这将生成一个名为的文件ui_MyWindow.h.

这是重建应用程序时使用的内容.

您没有指定构建方式或操作系统,因此很难为此提供帮助.如果您使用Visual Studios,则可以将.ui文件集成到项目中,以便在更改任何.ui文件时,将自动重新创建所有生成的文件.如果您使用.pri文件,也可以这样做.

无论如何,我会跑:

uic.exe -o ui_yourfile.h yourfile.ui
Run Code Online (Sandbox Code Playgroud)

请将文件名更改为您正在使用的文件名. uic.exe可以在Qt bin目录中找到.

然后,一旦有了生成的头文件,尝试找到它在构建目录中的位置.然后重建.


cen*_*cen 6

这对我个人有帮助,添加到 qmake 文件中: UI_DIR = $$PWD