在连接语句中访问Qt信号的'有效载荷'
问题描述:
如何在连接语句的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 });
答
你必须给你的lambda函数参数:
connect(&sender, &sendClass::stateChanged,
(std::pair<unsigned, unsigned> state)[] { /*do something with state*/ });
您的函子想象的那样,如果它是一个插槽。让它带有参数:) –