在Qt中的信号槽机制中,信号能携带的参数最多不超过6个。那么超过6个时怎么办呢?
这时,可以使用QByteArray作为参数,把需要传递的参数全部打包到这一个参数里,在槽函数里再将打包的参数逐项解析出来。
信号发送:
void signal_msg11001SearchPeople(QByteArray datagram);
void SearchFriends::slot_btnSearchClicked()
{
QByteArray datagram;
QDataStream out(&datagram,QIODevice::WriteOnly);
out<<(quint8)cmbSex->currentIndex()
<<(quint8)cmbAge->currentIndex()
<<(quint8)cmbNation->currentIndex()
<<(quint8)cmbProvince->currentIndex()
<<(quint8)cmbCity->currentIndex()
<<(QString)edtKeyword->text().trimmed();
emit signal_msg11001SearchPeople(datagram);
}
信号接收:
void MySocket::slot_msg11001SearchPeople(QByteArray datagram)
{
qDebug()<<"slot_msg11001Se