項目中出現的 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);





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章