Qt--信号槽传递结构体参数
(1) 需要注册结构体参数,在结构体中声明结束的地方加上结构体注册。
typedef struct s_exceptionNotifyData
{
} ExceptionNotifyData;
Q_DECLARE_METATYPE(ExceptionNotifyData);
(2)信号定义
signals:
void signalRealExceptionData(QVariant varData);
(3)槽函数定义
void recvRealExceptionData(QVariant varData);
(4)信号槽连接
connect(CCC::_cur, &CCC::signalRealExceptionData, this, &AAAA::recvRealExceptionData, Qt::DirectConnection);
(5)发送信号的时候用变量QVariant包装结构体
QVariant varData;
varData.setValue(ExceptionNotifyData );
emit signalRealExceptionData(varData);
(6)接收信号的地方从包装中取出结构体
ExceptionNotifyData notifyData;
notifyData= varData.value<ExceptionNotifyData>();