gpt4 book ai didi

Qt: SIGNAL, SLOT 宏声明

转载 作者:行者123 更新时间:2023-12-04 18:35:29 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




10年前关闭。




Possible Duplicate:
Is it possible to see definition of Q_SIGNALS, Q_SLOT, SLOT(), SIGNAL() macros? (Qt)



我在 Google 上找不到 Qt 中宏、SIGNAL 和 SLOT 的声明。
当我们说 connect(button1, SIGNAL (clicked()), this, SLOT (slotButton1()));
我想了解,突出显示的宏接受哪些各种参数?
任何指向文档的链接将不胜感激。
The link我打通了 尼尔的 下面的评论说: #define SLOT(a) "1"#a什么是 代表这里?它没有显示在该链接中。

最佳答案

正如尼尔所说,SLOT 和 SIGNAL 宏定义为

#define SLOT(a) "1"#a
#define SIGNAL(a) "2"#a
#a(带有 #a stringizing operator )将简单地将括号内的任何内容转换为字符串文字,以根据提供给宏的签名创建名称。 “1”和“2”仅用于区分时隙和信号。
This earlier post应该为您提供更多见解。
如果你想知道“为什么?”在所有这些宏内容和预处理中,我建议您阅读“ Meta-Object-Compiler”或 MOC。为了好玩,您可以看看 MOC 对您提供的代码做了什么。查看它的输出,看看它包含什么。那应该是非常有用的信息。
简而言之,这种通过 MOC 进行的预处理允许 Qt 实现一些 C++ 未作为标准提供的功能(如信号和槽)。 (虽然可以说这个概念有一些实现,但与 Qt 无关,不需要元对象编译器)

关于Qt: SIGNAL, SLOT 宏声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com