Qt信号与槽的第5个参数Qt :: Queued Connection
信号与槽第5个参数如果是Qt :: Queued Connection,就代表这个槽函数放到事件队列中,等待主线程空闲处理事件队列,也就是说槽函数会延迟处理
但是如果我们的这个槽函数所属的类没有在子线程中的话,那么主线程会一直等待这个对应的槽函数执行,会导致ui卡死
比如这样
点击查看代码
void Logger::write_Message(const QString &message)
{
QString timeMessage;
{
QMutexLocker locker(&this->m_mutex);
QString NowTime = QDateTime::currentDateTime().toString("HH:mm:ss.zzz");
timeMessage = QString("[%1],[%2]").arg(NowTime).arg(message);
}
emit logMessage(timeMessage);
}
//在其他类中
connect(&Logger::instance(),&Logger::logMessage,this,[](const QString&message)
{
qDebug()<<message;
},Qt :: Queued Connection);
浙公网安备 33010602011771号