我的Qt应用程序工作正常,最后,昨天,我设法创建可执行文件,它已准备好分发。
今天,我想添加更多功能但是每当我尝试在Qt-designer上向mainwindow.ui添加/删除QWidget时,在发布或调试模式下运行应用程序时都不会显示更改!它总是显示旧版本(即:修改前)
为什么会发生这种情况以及如何解决这个问题?
更新
我必须提到,在部署我的应用程序后,我更改了应用程序名称,如下所示:
之后,我意识到每当我在Qt-Designer中更改任何内容时,这些更改都不会在运行应用程序时发生。
答案 0 :(得分:1)
这通常是由混合源内和阴影构建引起的。最常见的情况是,如果让Qt Creator使用它的默认设置(使用阴影构建目录),然后直接从源代码中的命令行构建。
Qt应用程序构建生成一堆源文件moc_*.cpp
(和相应的目标文件)和ui_*.h
。现在,如果您在阴影构建目录和源目录中都有这些文件,那么首先使用源目录中的文件。因此,您可以使用设计器编辑GUI,并在shadow构建目录中生成新的ui_*.h
文件,但从未使用过,因为源目录中有过时的版本。
解决方法是从源目录中删除所有这些文件。如果您不小心将它们提交给版本控制,请务必将其从那里删除。如果您不确定自己在做什么,请先备份。
清理源目录的一种方法是使用Qt命令行去那里,然后运行qmake
,然后运行make clean distclean
。这应该让它非常干净。摆脱阴影构建目录更容易:只需删除它们,因为它们只包含生成的文件。
请注意,你应该使用阴影构建目录,它有许多好处(唯一的缺点是,如果你不小心污染源目录生成的文件,你会遇到问题吗?现在......)。