槽函数的参数个数必须小于等于信号函数的参数个数
引申:QSignalMapper的局限性
QSignalMapper可以用于单个slot识别多个signal,避免写多个slot。但是注意QSignalMapper对signal函数的参数有限制,只能是无参的、QString、QWidget 和QObject ,可以从QSignalMapper的signal看出来,如下:
void mapped(int i) //通过整型数区分不同的信号
void mapped(const QString &text) //通过QString区分不同的信号
void mapped(QWidget *widget) //转发QWidget 对象
void mapped(QObject *object) //转发QObject 对象
所以不要企图通过QSignalMapper映射多参数的signal,如获取鼠标位置坐标的信号:
void myLabel::mouseMoveEvent(QMouseEvent *ev)
{emit customMouseMoveEvent(ev->x(),ev->y());}
此时,QSignalMapper无法满足需求