Then you should avoid to dereference the pointers to not copy the data around.
I created the base vectors via QVector<myTreeNode> vec(vecSize) and I access them all via , so no thread should step over another thread,
It does as your backtrace shows. Since you're using QVector which is implicit shared every write access to the container checks if the container needs to get detached. Maybe try with a non-implicit shared container instead (e.g. a std::vector)
See http://doc.qt.io/qt-5/implicit-sharing.html for details.
The whole point of me setting it up that way is that the actual logical structure of the data and the physical arrangement and implementation of it are conceptually completely separate. The latter is abstracted away by the interface of the former.
Then I think the cleanest solution is to have a tree (or w/e) that represents your logical structure, and that will abstract the whole physical layer. For a simple example you can look at the docs - the simple tree model.
You can put anything in that tree and it's basically your "data interface". It also shouldn't care that the physical nodes are destroyed as long as there's a logical node living. This way you don't have with model indexes and things getting destroyed in the background, because it's the middleman's responsibility. You should hover take care to notify the model when a node/leaf from the "logical structure" tree is destroyed (through the appropriate signals), so views can make proper adjustments.
QStandardItemModel model = static_cast<QStandardItemModel>(ui->tree_shot->model());
Instance of which class is ui->tree_shot->model()?
The fact that you cast it to QStandardItemModel does not make it one.
If it is not QStandardItemModel or derived class you are in undefined behavior area.
You should not use static_cast for any of QObject derived class anyway. Use qobject_cast and check that value is not nullptr.
If you are creating model yourself is ui->tree_shot a QTreeWidget?
If it is custom model you probably did not call proper functions when changing the model.
In this case widget will not be updated properly.