ASSERT failure in QList<T>::operator[]: “index out of range”

164
19 июля 2021, 07:20

Уже голову сломал. Итак, есть QList<QString> или QStringList (не влияет на ошибку),

В одной функции я его создаю и отправляю в поле класса:

void AddDialog::onOkBtn(){
    QList<QString> fields;
    QString name = ui->itemName->text();
    QString count = ui->itemCount->text();
    QString price = ui->itemPrice->text();
    QString date = ui->itemDate->text().replace('.', '-');
    fields.push_back(name);
    fields.push_back(count);
    fields.push_back(price);
    fields.push_back(date);
    qDebug() << fields.size();
    this->fields = fields;
    emit accepted();
}

после этого в другом классе есть функция которая должна этот QList<QString> обрабатывать:

void MainWindow::refresh()
{
    QList<QString> fields = addWindow.getFields();
    qDebug() << fields.size() << fields[0];
}

(getFields лишь возвращает переменную fields):

QStringList AddDialog::getFields()
{
    return this->fields;
}

Проблема в том, что когда я хочу получит любой элемент из fields с помощью [] или .at() программа вылетает:

ASSERT failure in QList<T>::operator[]: "index out of range", file C:\Qt\Qt5.12.0\5.12.0\msvc2017_64\include\QtCore/qlist.h, line 552

тогда я подумал, может мой QList не дозодит до места использования, и решил просто вывести его длину:

qDebug() << fields.size();

Но! вместо числа 0 или 4 (я записывал в этот список 4 строки) я получаю сначала 0, а потом 4:

Вопросы:

1) почему я получаю 2 числа в консоль?

2) почему сначала 0, а потом 4,

3) как мне сделать так, чтоб я получал просто 4 и спокойно работал со списком?

Заранее спасибо.

READ ALSO
Анимация появления текста Jquery

Анимация появления текста Jquery

Пожалуйста, подскажите, как сделать анимацию появления текста, если текст меняется с помощью Jquery:

295
Ajax срабатывает сразу несколько раз

Ajax срабатывает сразу несколько раз

Почему ajax запрос срабатывает сразу несколько раз?

269
Navbar в слайдере

Navbar в слайдере

Каким способом можно navbar вытянуть на слайдер поверх его??? Чтобы под ним фон менялся, а сам navbarоставался там же Смотрел сайт У него была такая...

289