Название: [РЕШЕНО] beginRemoveRows умирает Отправлено: White Owl от Февраль 11, 2012, 01:26 Есть модель построенная на основе QAbstractItemModel. Модель используется в QTableView.
Делаю возможность удаления строк из таблицы: Код: class MyModel: public QAbstractItemModel { Записываю в модель одну строку с парой полей. Вызываю Код: qDebug() << "remove all" << dataModel->rowCount(); remove all 1 remove rows 0 1 QModelIndex(-1,-1,0x0,QObject(0x0) ) parent parent parent parent И все заканчивается GPF'ом. Куда копать? Что я делаю неправильно? Название: Re: beginRemoveRows умирает Отправлено: asvil от Февраль 11, 2012, 10:49 Как минимум удобнее наследовать abstracttablemodel. Это позволит уйти от методов parent, hasChild и т.п.
Глядя на код не могу найти ничего некорретного. Может rowCount неправильное значение возвращает. Попробуйте modeltest. Это такой проект -- позволяет модели тестировать. Название: Re: beginRemoveRows умирает Отправлено: White Owl от Февраль 17, 2012, 00:57 Все. Баг найден и удавлен.
У QTableView которое использует мою модель перехвачен сигнал selectionChanged(const QModelIndex ¤t, const QModelIndex &previous), а в обработчике этого сигнала вызывается метод модели MyModel::getRowInfo(current.row()) который формирует краткое описание строки на основе внутреннего хранилища данных и потом это описание идет в statusbar главного окна. В методе MyModel::getRowInfo(int row) я забыл поставить проверку на выход номера строки за пределы хранилища данных... |