Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Icoz от Сентябрь 17, 2007, 23:21



Название: [qt4.3.1] Модель на основе QAbstractItemModel
Отправлено: Icoz от Сентябрь 17, 2007, 23:21
Проблема следующая: при добавлении к итему первого потомка не появляется крестик, информирующий о том, что его можно развернуть.
использую так:
Код:
...
addItemToIndex(index, item);
emit dataChanged(index, index);
...

Крестик появляется только если я передвину ручками выделение на другой итем дерева.


Название: Re: [qt4.3.1] Модель на основе QAbstractItemModel
Отправлено: Вячеслав от Сентябрь 18, 2007, 08:24
Код:
void beginInsertRows ( const QModelIndex & parent, int first, int last )  
void endInsertRows ()
присобачь правильно .....


Название: Re: [qt4.3.1] Модель на основе QAbstractItemModel
Отправлено: Icoz от Сентябрь 18, 2007, 21:39
Извините, прошлый кусок кода писал приблизительно и по памяти.
Вот реальный кусок из проги:
Код:
void NotesModel::AddNote(QString name, QModelIndex &parent, QString content)
{
beginInsertRows(parent, noteFromIndex(parent)->children.size(),noteFromIndex(parent)->children.size());
AddNote(name,noteFromIndex(parent),content);
endInsertRows();
//emit dataChanged(parent,parent);
}
При помощи emit я уже дублирую обновление - все равно крестик не появляется!

Код отвечающий за перетаскивание работает нормально, простое добавление - нет.