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