0
私は実際には学校のための個人的な "Excel"に取り組んでいます。はStringまたはNumber関数です
私のセルの値が数値(int)の場合、私はそれを私のlistNumber(QList int)に追加したいと思います。私のセルの値が文字列の場合、私はそれを私のlistStringに加えたいと思う。
これらの2つのリストを使用すると、並べ替えを行うことができます。
問題はここにある:
QString test = text(i, j);
test.toInt(&ok);
if (ok == true) {
listNumber.append(test.toInt());
qSort(listNumber.begin(), listNumber.end());
}
ERROR 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