问:运行应用程序时QWidget没有显示?

时间:2016-03-16 11:23:04

标签: c++ qt qt-creator qwidget

我的Qt应用程序工作正常,最后,昨天,我设法创建可执行文件,它已准备好分发。

今天,我想添加更多功能但是每当我尝试在Qt-designer上向mainwindow.ui添加/删除QWidget时,在发布或调试模式下运行应用程序时都不会显示更改!它总是显示旧版本(即:修改前)

为什么会发生这种情况以及如何解决这个问题?

更新

我必须提到,在部署我的应用程序后,我更改了应用程序名称,如下所示:

  1. 在.pro文件中打开Qt-creator,更改TARGET值
  2. 关闭QT创建者,转到源文件夹并重命名
  3. 在源文件夹中,也重命名.pro文件
  4. 之后,我意识到每当我在Qt-Designer中更改任何内容时,这些更改都不会在运行应用程序时发生。

1 个答案:

答案 0 :(得分:1)

这通常是由混合源内和阴影构建引起的。最常见的情况是,如果让Qt Creator使用它的默认设置(使用阴影构建目录),然后直接从源代码中的命令行构建。

Qt应用程序构建生成一堆源文件moc_*.cpp(和相应的目标文件)和ui_*.h。现在,如果您在阴影构建目录和源目录中都有这些文件,那么首先使用源目录中的文件。因此,您可以使用设计器编辑GUI,并在shadow构建目录中生成新的ui_*.h文件,但从未使用过,因为源目录中有过时的版本。

解决方法是从源目录中删除所有这些文件。如果您不小心将它们提交给版本控制,请务必将其从那里删除。如果您不确定自己在做什么,请先备份。

清理源目录的一种方法是使用Qt命令行去那里,然后运行qmake,然后运行make clean distclean。这应该让它非常干净。摆脱阴影构建目录更容易:只需删除它们,因为它们只包含生成的文件。

请注意,你应该使用阴影构建目录,它有许多好处(唯一的缺点是,如果你不小心污染源目录生成的文件,你会遇到问题吗?现在......)。