【发布时间】:2011-05-04 08:39:57
【问题描述】:
可能重复:
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 我通过 Neil 的 评论如下:#define SLOT(a) "1"#a,a 在这里代表什么?它没有显示在该链接中。
【问题讨论】:
-
致您的编辑:它们是简单的宏。 #a 表示将 SLOT 括号中的 a 变成字符串。 (这个 # 有时被称为“字符串化操作符”......是的......)插槽和信号的“1”和“2”分别只是为了区分两者。这里的第一个回复给你一些进一步的解释:stackoverflow.com/questions/2008033/…
-
如果您想知道 Qt 中所有这些宏的“原因”,您可能需要阅读“元对象编译器”(MOC)。为了好玩,只需阅读 MOC 的输出,看看它对您的代码做了什么。这应该可以为您提供一些见解。
-
我对此犹豫不决,因为我只是提供了指向 SO 上已经存在的其他帖子的链接,并且必须在我的回答中引用 @Neil 的回答。但根据您的要求,我已经这样做了。
标签: qt signals-slots