In QAbstractItemModel there's a way to associate an outside data structure using QModelIndex::internalPointer (). I was wondering if there's a way to reference the other way around from the data structure. Let's say the structure was modified and I need to insert new child nodes on the parent node in the model, how do I find out which part in the model corresponds to my data structure so that I would know the parent model index where to insert? I would like to use the beginInsertRows to add new children nodes but I don't know parent model index. What's the best way to do this? As I understand using reset() is costly since it would recreate the model again.