Qt解决槽函数中发送的信号的参数会变化带来的错误

connect(item, &MusicItemWidget::playRequest, this, [this] {
    emit playMusic(QUrl(this->m_mediaPath);
);

 如上图,this->m_mediaPath是个成员变量,但自己的初衷是发送一个最开始捕获的值,那么可以使用下面的方法:

QString fixedMediaPath = this->m_mediaPath; // 捕获当前的 m_mediaPath
connect(item, &MusicItemWidget::playRequest, this, [fixedMediaPath, this] {
    emit playMusic(QUrl(fixedMediaPath));
});

猜你喜欢

转载自blog.csdn.net/m0_74091159/article/details/142882982