附加一个const QString&到QStringList

时间:2018-04-13 18:59:26

标签: c++ qt qt5

我有一个返回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?我似乎无法找到相关信息。

由于

1 个答案:

答案 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;
}