2016-11-26 63 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*/ });