项目中出现的 emit(QT)

           
if("success" == result)            
{                
    qDebug()<<"pay OK";                
    Rs232MyIF_AC_Send((short)1);                
    emit paySuccess();
}

    

void SetShowQRCode(Communicate *comm){
    emit comm->showQRCodeSignal();
}


今天看代码时,看到有emit,不知道它是做什么的,就在网上找了一下。

--------------------------------------------------------------------------------------------------------------------------

emit是将信号 paySuccess或信号showQRCodesignal发射出去;一些代码还会出现tr函数是Qt中为了国际化而使用的,支持多语言多种字符编码而实现,可以正确显示中文等非assci编码字符


emit就是调用findPrevious或者findNext信号对应的槽函数,emit之前,在某个地方,肯定有connect把信号和槽进行关联,关联了之后,emit某个信号,就相当于调用这个信号connect时所关联的槽函数,就这么简单而已。

emit啥事也不干,是给程序员看的     emit是发出信号 对应的是接收信号

在这之前 应该有QObject::connect(*FindDialog, SIGNAL(), *receiver, SLOT()) 类似的句子

调用emit ..后,对应的SLOT里面的函数就会被调用

----------------------------------------------------------------------------------------------------------------------------------

上面说的很清楚,就是发射信号的,在其他地方已经把信号与槽函数连接,当出现这个信号,就会激活槽函数

connect(&comm,&Communicate::showQRCodeSignal,this,&MainWindow::showQRCodeSlot);





猜你喜欢

转载自blog.csdn.net/weixin_41157654/article/details/80820642