C++ Qt“转到插槽”丢失

Posted

技术标签:

【中文标题】C++ Qt“转到插槽”丢失【英文标题】:C++ Qt "Go to Slot" Missing 【发布时间】:2016-05-10 18:15:15 【问题描述】:

与 Visual Studio 2015 企业版集成的 Qt 设计器无法正常运行。我看过很多教程,其中人们显示右键单击控件,然后单击“转到插槽”以声明例如单击按钮的事件。

但是我的编辑器缺少此功能,如何进行?我是否必须始终手动编写有关控件的所有必要信息,然后才能创建事件?

编辑:但是,当我转到 Qt Creator(不同的应用程序???)时,“转到插槽”按钮会显示

所以按钮显示在 Qt Creator 中,但不在 Qt Designer 中。

【问题讨论】:

猜测,VS 版本可能不支持该功能。如果是这样,请相应地调整您的工作流程:在旁边使用 Qt Creator(应该没有问题,我想两个 IDE 都可以配置为自动重新加载外部修改的文件)或手动编写您的插槽。 在 Visual Studio 中开发 Qt 应用程序时,我还没有看到 go to slot。 Qt Designer 与 VS IDE 没有连接。 【参考方案1】:

Qt Designer 没有实现这个特性; Qt Creator 可以。您的 Qt 设计器本身可以正常工作。如果没有完整的代码模型等,就不可能实现这一点,因此该功能属于 IDE:在 Qt Creator 或 VS 插件中。 Qt VS 插件可以提供这个功能,但是还没有人为此提交任何代码,提示提示:)

TL;DR:这是设计使然。

【讨论】:

【参考方案2】:

我有同样的问题,并查看了 Qt Creator 如何连接信号。 这是答案:Post from @Steve Lorimer

您的广告位必须符合以下格式:

void on_<object-name>_<signal-name>(<signal-parameters>);

我在 Visual Studio 2015 中对其进行了测试,它运行良好。以这种格式创建一个插槽,它将自动连接。

也许这仅适用于从 Qt Creator 迁移到 VS 的项目,但我不确定。

【讨论】:

以上是关于C++ Qt“转到插槽”丢失的主要内容,如果未能解决你的问题,请参考以下文章

QT Creator 中的 Slot 信号,connect() 函数在哪里?

C++ 和 QT4.5 - 传递 const int& 过大?通过引用传递是不是有助于信号/插槽?

Qt4 现有插槽无法识别

Qt 5 将带有参数的插槽分配给 QPushButton

如何启用禁用的按钮

在 Qt 应用程序中似乎无法识别插槽 [重复]