Qt的核心技术信号槽的灵活使用相信大家都非常熟悉了,这里主要总结一下在信号槽中不能随意使用的地方以及如何使用typedef绕过这些坑。
函数指针作为槽函数的参数
槽函数的使用和普通的成员函数没有多大的区别,但是不能将函数指针作为槽函数的参数!比如:
private slots:
void mySlot(int (*function)(char *p, int *n), bool b);
上述槽函数中使用了函数指针int (*function)(char *p, int *n)
作为槽函数mySlot
的第一个参数,这是不行的。如果非要使用函数指针作为参数应该如何通过编译呢?答案是使用typedef
:
typedef int (*function)(char *p, int *n) FUNCTION(char *p, int *n)
...