Я действительно работаю над личным «Excel» для школы.is String или is Number function
Когда значение моей ячейки является числом (int), я хочу добавить его в свой списокNumber (QList int). Когда значение моей ячейки является строкой, я хочу добавить ее в свой списокString.
Эти два списка позволяют мне сортировать.
Проблема здесь:
QString test = text(i, j);
test.toInt(&ok);
if (ok == true) {
listNumber.append(test.toInt());
qSort(listNumber.begin(), listNumber.end());
}
ОШИБКА ASSERT failure in QList<T>::at: "index out of range" .
Я думаю, это потому, что он хочет «вставить» строку в списке целого.
Вот моя функция "сорт"
QList<QString> listString;
QList<int> listNumber;
bool ok;
QTableWidgetSelectionRange range = selectedRange();
for (int j = range.leftColumn(); j <= range.rightColumn(); ++j) {
for (int i = range.topRow(); i <= range.bottomRow(); ++i) {
QString test = text(i, j);
test.toInt(&ok);
if (ok == true) {
listNumber.append(test.toInt());
qSort(listNumber.begin(), listNumber.end());
}
}
}
if (listNumber.count() == 0) {
QMessageBox test;
test.setText("liste vide");
test.exec();
}
else {
int x = 0;
for (int j = range.leftColumn(); j <= range.rightColumn(); ++j) {
for (int i = range.topRow(); i <= range.bottomRow(); ++i) {
Spreadsheet::setFormula(i, j, QString::number(listNumber.at(x)));
x++;
}
}
}
Спасибо вам большое за вашу помощь.
Проблема в вызове 'listNumber.at (x)'. Ваше значение 'x' превышает размер контейнера' listNumber'. Вы должны убедиться, что этого не произойдет. – vahancho
Я выполняю это условие: if (listNumber.count() = 0) -> то я ничего не делаю, мой x не может превышать размер, если в моем списке есть что-то в этом списке? – devicz
О, я понимаю, ты прав! – devicz