0

我正在 QtCreator 中开发一个 Qt 项目。该项目有一个带有多个 UI 元素的对话框,其中一些必须根据用户的操作来启用/禁用。(即,如果用户选择单选按钮,则必须启用表单字段。)

当我通过 Qt Designer 工具添加新的信号/插槽连接或删除现有的连接时,更改在预览中显示得很好。但是,当我编译应用程序时,窗口的行为仍然与以前完全相同。

我通过检查ui_WindowName.hQt Designer 创建的文件对此进行了调查。接近setupUi函数末尾的是一组connect()调用。这些connect()调用与今天早些时候存在的槽和信号是一致的,但它们并没有反映我从那时起通过 Qt Designer 所做的更改。

如果我手动更改ui_WindowName.h文件,则 UI 可以工作。但是,当然,如果我尝试从 Qt Designer 中获得任何机会,我的更改就会被覆盖。

即使我退出 QtCreator 并再次打开它,Designer 仍然显示更改的插槽/信号连接,而自动生成的代码不反映更改。

难道我做错了什么?有什么方法可以删除 Designer 存储的任何缓存,或者让事情恢复同步吗?

谢谢!

(另一件事:我使用的是独立的 Qt Creator,而不是尝试在 Visual Studio 中开发。我在网上可以找到的唯一其他类似问题是来自在 Visual Studio 中开发的人,它不支持自动化信号/插槽的东西。)

4

1 回答 1

3

像往常一样,一旦你意识到答案就很明显了。

我在处理它的过程中移动了这个项目。有一个 .pro.user 文件可以跟踪项目所在的位置。没有意识到这一点,我将它与其余文件一起移动。

结果,我正在编辑该项目的一个副本并运行另一个。

故事的寓意:如果您移动 Qt 项目,请记住更新您的 .pro.user 文件。

(或者你可以直接删除它。当你打开项目时,Qt Creator 会提示你重新创建它。)

于 2013-01-18T04:12:40.407 回答