1 信号与槽的宏定义
METHOD
,SLOT
,SIGNAL
宏前面对应的是字符串数字;#
的意思是字符串拼接;METHOD
,SLOT
,SIGNAL
宏实则就是加了前缀的字符串。1
2
3define METHOD(a) "0"#a
define SLOT(a) "1"#a
define SIGNAL(a) "2"#a
2 信号与槽的使用
- 先定义信号槽使用的宏
SIGNAL
与SLOT
; - 再通过使用connect连接使用;
- 例:
1
2
3QPushButton *button = new QPushButton(this);
connect(button, SIGNAL(clicked()),
this, SIGNAL(buttonClicked()));
3 解析函数
对应宏
METHOD
,SLOT
,SIGNAL
对应判断标记QMETHOD_CODE
,QSLOT_CODE
,QSIGNAL_CODE
的定义
1
2
3
1 | static int extractCode(const char *member) |
3.1 使用
1 |
|
3.2 输出
1 | SLOT |
3.3 知识点
(((int)(*member) - '0') & 0x3)
主要作用为提取第一个字符减去0
的ascii码再&3
的出对应的数字就是对应结果了;