int TreeItem::row() const{ if(!parentItem) return 0; int nRet = 0; QHash<QString, TreeItem*>::const_iterator i = childItems.constBegin(); while(i != childItems.constEnd()) { if(i.value() == const_cast<TreeItem*>(this)) return nRet; i++; } // !!!Ну очень интересно! У Парента нет чилда this!!! return 0;}TreeItem *TreeItem::child(int row){ QHash<QString, TreeItem*>::iterator i = childItems.begin(); while(i != childItems.end()) { if(!row) return i.value(); row--; i++; } // !!!По идее этого не д.б. никогда!!! return 0;// return new TreeItem();}