Russian Qt Forum

Qt => Вопросы новичков => Тема начата: qwyllum от Июнь 25, 2013, 17:19



Название: error: passing 'const QString' as 'this' argument of 'QString
Отправлено: qwyllum от Июнь 25, 2013, 17:19
Подскажите пожалуйста, что может быть за ошибка. Делал пример с моделью, наследуемой от абстрактной. Переопределяю метод setData:
Код:
bool tvPropertiesModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
    if (index.isValid() && role == Qt::EditRole)
    {
        // записываем данные из каждого столбца value.toString()

        list->at(index.row()).data=value.toString();

        return true;
    }
    return false;
}

На что выдается:

..\v0002\tvpropertiesmodel.cpp:67:51: error: passing 'const QString' as 'this' argument of 'QString& QString::operator=(const QString&)' discards qualifiers [-fpermissive]
..\v0002\tvpropertiesmodel.cpp: In member function 'virtual QVariant tvPropertiesModel::data(const QModelIndex&, int) const':


Не могу понять, что это значит? При чем тут const к моей переменной?


Название: Re: error: passing 'const QString' as 'this' argument of 'QString
Отправлено: Alex Custov от Июнь 25, 2013, 17:21
list->at(...) возвращает константную ссылку? Используй [].


Название: Re: error: passing 'const QString' as 'this' argument of 'QString
Отправлено: kambala от Июнь 25, 2013, 17:38
…что будет выглядеть как list->operator[](index.row()) либо (*list)[index.row()]