QModelIndex TreeModel::index (int row, int column, const QModelIndex& parent) const { if (!hasIndex (row, column,parent)) return QModelIndex();// никкогда не доходит до сюда. почему? хз. разбираться особо неохота. TreeItem *parentItem = GetItem (parent); parentItem->AddChild(RootItem_);// Если 1 условие убрать, то ты берёшь вот здесь указатель на 0 элемент из массива в 0 элементов (проще говоря куда то указателем тыркаешь, непонятно куда) TreeItem *childItem = parentItem->Child (row);// и самое интересное, указатель то у тебя существует, и поэтому ты делаешь какой то бред... if (childItem) return createIndex (row, column, childItem); else return QModelIndex (); }