Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QTree model architecture



  • Hi all,

    I have a view/model application using QTreeView and a proxy (all code in PySide/Cython/numpy).
    I use to sort my tree (depth up to 7) using my own function but it was quite difficult to propagate modifications and I think, at the end, the application was in an inconsistent state (probably bad indexes). Then I changed to use the proxy. It looks like the indexes are much better now but I still have some architecture concerns as the sort is not called when I modify the tree, I need a piece of advice:

    • The source model has a setData which allows a node name to be changed, then the sort has to be performed again
    • But the setData is in the source model and has no knowledge of the proxy model, I cannot propagate any dataChanged or rowsMoved

    Do the sourceModel has to re-emit its own messages to the proxy (rowsMoved, dataChanged...) ?
    How can I ask the sourceModel to trigger the proxy model so that the node name change is taken into account ?
    Should I move the setData into the proxy model ?

    see source :

    line780 into http://pycgns.hg.sourceforge.net/hgweb/pycgns/pycgns/file/5b5c82525535/NAVigater/CGNS/NAV/mtree.pyx

    warning: lines 798 to 801 cannot work because instead of self. I should use the proxy model... it has been committed for the purpose of this forum.


Log in to reply