我正在QtCreator的Qt项目上工作。该项目有一个带有几个UI元素的对话框,其中一些元素必须根据用户的操作来启用/禁用。(即,如果用户选择了单选按钮,则必须启用表单字段。)
当我添加一个新的信号/插槽连接或删除现有的通过Qt设计器工具,变化显示在预览中很好。但是,当我编译应用程序时,窗口的行为仍然和以前完全一样。
我通过检查Qt设计器创建的ui_WindowName.h
文件来调查这个问题。靠近setupUi
函数的末尾是一组connect()
调用。这些connect()
调用与今天早些时候存在的槽和信号一致,但它们不反映我从那时起通过Qt设计器所做的更改。
如果我手动更改ui_WindowName.h
文件,则UI工作。但是,当然,如果我试图改变Qt Designer中的任何东西,我的更改将被覆盖。
当我退出QtCreator并再次打开它时,Designer仍然显示更改的槽/信号连接,而自动生成的代码不反映更改。
我做错了什么吗?是否有某种方法可以删除设计器存储的任何缓存,或者使内容恢复同步?
谢谢!
(另一件事:我正在使用独立的Qt Creator,而不是试图在Visual Studio中开发。我在网上发现的唯一一个类似的问题是来自于一个用Visual Studio开发的人,它不支持自动信号/插槽的东西。
像往常一样,一旦你意识到这一点,答案是显而易见的。
我在工作的过程中移动了项目。有个。pro。跟踪项目所在位置的用户文件。在没有意识到这一点的情况下,我将它与其他文件一起移动。
结果,我正在编辑一个项目的副本并运行另一个。
这个故事的寓意是:如果你移动了一个Qt项目,记得更新你的.pro。用户文件。
(或者你可以直接删除它。Qt Creator会在你打开项目时提示你重新创建它)