2016-11-26 64 views
0

如何在連接語句的lambda中訪問信號的「有效載荷」?在連接語句中訪問Qt信號的'有效載荷'

說出信號看起來是這樣的:

signals: 
    void stateChanged(std::pair<unsigned, unsigned>); 

現在連接語句中,我想訪問一個拉姆達的std::pair,我該怎麼做呢?類似的東西:

connect(&sender, &sendClass::stateChanged,()[]{ use content of std::pair for conversion here; emit other signal with converted content });

+0

您的函子想象的那樣,如果它是一個插槽。讓它帶有參數:) –

回答

3

你必須給你的lambda函數參數:

connect(&sender, &sendClass::stateChanged, 
     (std::pair<unsigned, unsigned> state)[] { /*do something with state*/ });