首页 > 解决方案 > 我需要 Q_EMIT 示例

问题描述

现在我正在学习 QT ,但我在互联网上不懂 Q_EMIT ,我没有找到具体的语法或相关示例。请帮助我!

我发现了这一点:当您想将 Qt 信号和插槽与 3rd 方信号/插槽机制一起使用时,使用此宏替换发出信号的 emit 关键字。

该宏通常在 .pro 文件中使用 CONFIG 变量指定 no_keywords 时使用,但即使未指定 no_keywords 也可以使用该宏。

标签: c++qt

解决方案


Qt 系统基于“信号”和“槽”的概念。“信号”是发生的事情,通常是用户输入,而“插槽”只是代码。您可以将信号连接到插槽,以便在触发信号时调用插槽。在实现方面,信号和槽都是 C++ 方法,其中信号的代码将调用与其连接的所有槽(和信号)。您可以在Qt 文档中阅读有关信号和插槽的更多信息。

知道这一点,Q_EMITemit宏是用于人类阅读代码的指标,即您正在调用一个信号(正如我上面解释的,它隐式调用与其连接的所有插槽)。因此,此方法调用可能会对系统的其他地方产生影响。宏本身扩展为空的 C++ 代码。connected()如果您在对象的某处有信号,则可以将其称为Q_EMIT connected();emit connected();什至connected();


推荐阅读