Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Удаление строк из таблицы


Автор: math64 1.3.2012, 15:45
Данные для таблицы хранятся в QVector
Код

bool TableModel::removeRows(int row, int count, const QModelIndex &parent)
{
    if (readOnly || parent.isValid() || row < 0 || row + count > rowCount())
        return false;
    beginRemoveRows(parent, row, row + count - 1);
    for(;count; count--) {
        records.removeAt(row);
    }
    endRemoveRows();
    return true;
}

Таблица используется вместе QSortFilterProxyModel.
После удаления QSortFilterProxyModel выдаёт сообщение
QSortFilterProxyModel: invalid inserted rows reported by source model
и программа вылетает.

Автор: math64 1.3.2012, 19:12
Ошибка была из-за реализации canFetchMore() - после удаления строки он считал что можно считать ещё одну строку из файла.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)