我有一个返回const QString的插槽:
QStringList listErr;
connect(this->restService.data(), &CommonToolkit::RestService::RestSuccess,
[=](int code, const QString &error_message, const QString &data){
listErr << data;
}
我收到错误:
passing 'const QStringList' as 'this' argument of 'QStringList& QStringList::operator<<(const QString&)' discards qualifiers [-fpermissive]
listErr << data;
在Google上进行研究,我知道错误发生的原因。我的问题是我如何转换const变量,以便我可以将它添加到QStringList?我似乎无法找到相关信息。
由于
答案 0 :(得分:1)
由于您要修改listErr的值,您必须使用&
而不是=
:
根据docs:
[&amp;]捕获lambda体中使用的所有自动变量 参考和当前对象(如果存在)
[=]通过copy和current捕获lambda体中使用的所有自动变量 如果存在,则按引用对象
QStringList listErr;
connect(this->restService.data(), &CommonToolkit::RestService::RestSuccess,
[&](int code, const QString &error_message, const QString &data){
listErr << data;
}