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