Interesting, that makes sense to me along with some of the advice you gave here! https://www.qtcentre.org/threads/706...tractListModel

Perhaps me trying to combine them into my existing data structure classes is contributing to my confusion and when I separate it out, things will start to make some more sense. I was putting them into my existing classes just for simplicity during the prototyping phase, but perhaps it is throwing me off of what I actually need to do to implement my model indices.

Basically you are suggesting just create somewhat of a linked list implementation of my data structure, and then use a unique identifier for every single node, that then each map to a unique modelindex within ClassroomModel and thus also gets exposed to my QML view.

I continue to wonder if this is really the best way to accomplish what seems like it should have a simpler solution (just properties for each member at each level since they are all qobjects?), but I see that sentiment in quite a few of the other similar threads to mine Your suggestion is starting to circle in on another idea I was starting to have which was to just have a whole pile of pointers that go into a hash table with some way of accessing them, and the way you are suggesting seems similar (using modelindex and the predefined model interface to solve the access problem)