我在谷歌上找不到Qt中宏,SIGNAL和SLOT的声明.
当我们说,连接(button1,SIGNAL(clicked()),这,SLOT(slotButton1()));
我想了解,突出显示的宏接受哪些参数?
任何指向doc的链接都将受到赞赏.
编辑1
链接我拨通了尼尔的下面的评论说:#define SLOT(a) "1"#a又是什么一个代表在这里?它没有显示在该链接中.
Bar*_*art 20
根据OP请求:
正如Neil所说,SLOT和SIGNAL宏被定义为
#define SLOT(a) "1"#a
#define SIGNAL(a) "2"#a
Run Code Online (Sandbox Code Playgroud)
#a(使用#a 字符串化运算符)将简单地将括号内的任何内容转换为字符串文字,以便从提供给宏的签名中创建名称."1"和"2"仅用于区分时隙和信号.
这篇早期文章应该为您提供更多见解.
如果你想知道"为什么?" 所有这些宏的东西和预处理,我建议你阅读" 元对象编译器 "或MOC.只是为了好玩,您可以查看MOC对您提供的代码所做的工作.查看其输出并查看其中包含的内容.这应该是非常有用的.
简而言之,通过MOC进行的预处理允许Qt实现C++不提供标准的某些功能(如信号和插槽).(虽然可以说这个概念的一些实现,与Qt无关,不需要元对象编译器)
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
12127 次 |
| 最近记录: |