Chr*_*ris 36 user-interface qt
之前有人在Qt设计器中写了一个GUI,现在我必须修改一些小部件(即添加一个按钮/功能).
前提:我在Designer中添加新功能/对.ui文件进行任何修改.我可以进入编辑模式,看到这会改变.ui文件的xml格式
问题:当我构建并运行Qt时,旧版本的.ui就是显示的内容(没有我的功能升级).我试着清理一切并运行qmake,但无济于事.
为什么会发生这种情况的任何想法?
iro*_*nic 97
我有同样的问题,当我在"项目"模式中禁用"阴影构建"时,它已解决.
UPD:仍然收到这个答案的赞成票让我很难过,原因有两个
use*_*284 10
我可以在不改变Shadow Build配置的情况下解决这个问题.在我的项目中,我想用输出文件构建到build-ProjectName-Debug中
但QtCreator并不聪明,无法检查文件moc_FileName.cpp和ui_FileName.h是否存在于构建目录中.出现此问题的原因是,如果这些文件moc_FileName.cpp和ui_FileName.h进入项目目录,QtCreator将使用它们,并且无法识别对.ui文件的任何修改.
这个问题的解决方案对我来说很容易:从项目目录和Rebuild中删除所有moc_FileName.cpp和ui_FileName.h.这些文件将被创建到build-ProjectName-Debug中,所有修改都将在那里.
当您更改.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
目录中找到.
然后,一旦有了生成的头文件,尝试找到它在构建目录中的位置.然后重建.