Qt将信号和槽关联起来的connect使用时需要注意带相应的参数,否则会出现信号发出后不能调用槽的问题,例子如下:
发出信号的声明:
signals:
void ReceivedData(uchar *dat, uint len);
接收信号的槽声明:
private slots:
void GetData(uchar*buf, uint len);
则,关联信号和槽的语句应该如下:
connect(this, SIGNAL(ReceivedData(uchar*, uint)), this, SLOT(GetData(uchar*, uint)));
信号和槽的参数列表要完全一致,包括参数顺序、类型
如果定义成如下的信号和槽,则信号发出后,槽不会收到信号
signals:
void ReceivedData(uchar *dat, int len);
接收信号的槽声明:
private slots:
void GetData(uchar*buf, uint len);
connect(this, SIGNAL(ReceivedData(uchar*, int)), this, SLOT(GetData(uchar*, uint)));