A simple question, (hopefully with a simple answer).
QTreeView will pass Qt.DisplayRole to the model’s data function when fetching rows for display, by default.
But say I wanted to pass ‘MyAwesomeTreeDisplayRole’ instead of Qt.DisplayRole, what would I need to do?
I can’t seem to find anything about where the view decides to use displayrole or how to override it.
Just before you ask why I want to do such awful things..
Basically, my QAbstractItemModel is intended to be usable both for a treeview (1 column) and a tableview (multiple columns, based on parent).
Using the same DisplayRole for both types of views doesn’t really work, since then I’m forced to return the same data for both. This results in me only seeing the first column in the treeview when I want to return a concatenation of a couple of columns.
I think the simplest way would be to just use custom roles (TreeDisplayRole and TableDisplayRole).
Thanks in advance.
I don’t know, how to do it in
python, but you have to create your own delegate to render items data. Delegate is actually the object, that requests any data from indices and renders itNote, that in common case
QTreeViewis able to show multiple columns, you should only havecolumnCountsetincorrectly for top-level index