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);