Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Jesaul от Октябрь 27, 2005, 15:48



Название: QTreeView qt 4.0.1) - проблема с удалением/добавлением строк
Отправлено: Jesaul от Октябрь 27, 2005, 15:48
Делаю  задачу, в которой столкнулся с gpf-ом.
Более конкретно - имеется класс, производный от QTreeView который пользуется своим собственной абстрактной моделью QAbstractItemModel.
Так вот, когда создается иерархическая структура внутри QTreeView, потом в этой структуре выполняется выбор элемента, то после этого removeRows с последующим insertRows вываливается.
Причина вылета в том, что после удаления всех записей высшего уровня, внутри QAbstractItemModel что-то да остается.
Вот это видно тут: persistent.indexes.count() == 1

void QAbstractItemModelPrivate::columnsAboutToBeRemoved(const QModelIndex &parent,
                                                        int first, int last)
{
    persistent.changed.clear();
    persistent.invalidated.clear();
    for (int position = 0; position < persistent.indexes.count(); ++position) {
        QModelIndex index = persistent.indexes.at(position)->index;
        if (index.isValid() && index.parent() == parent) {
            if (index.column() > last) // after the removed columns
                persistent.changed.append(position);
            else if (index.column() >= first) // about to be removed
                persistent.invalidated.append(position);
        }
    }
}

Что и приводит к проблемам.
Если выбранного элемента нет, то все в порядке, но в данном случае clearSelection не помогает.
Помогите понять, что тут за проблемы - или как полностью очистить QTreeView(QAbstractItemModelPrivate)


Название: QTreeView qt 4.0.1) - проблема с удалением/добавлением строк
Отправлено: Admin от Октябрь 27, 2005, 16:22
я не совсем понял твою проблему, но у меня примерно такая

как удаляю что то из модели, выдается ошибка

как я поискал, это багня в 4.0.1 и вот сиже жду когда ее поправят


Название: QTreeView qt 4.0.1) - проблема с удалением/добавлением строк
Отправлено: Admin от Октябрь 28, 2005, 11:15
меня тут вообще удивило что в QAbstractItemModel стоит пустышка на месте removeRow, хотя в доке об этом ни слова