Similar to Foreach delegate in QML view I'm having trouble finding a list of current delegates in a QML TreeView
.
However, the actual problem I'm trying to solve is this: I have a C++ class that inherits from QAbstractItemModel
that provides several different roles. One of them is Qt::CheckStateRole
which functions as an indicator for whether a particular item in the TreeView
is selected for display elsewhere in the GUI.
Using Edit QStandardItemModel via TableView with Custom Delegate as a general guide (but adapted to TreeView
, hint: use mapToItem()
instead of mapFromGlobal()
) I'm able to service user clicks to the checkbox that appears in that particular column (role). However, I need to programmatically alter the state of other checkboxes as well (different than the one that got clicked).
Strangely, dataChanged()
signals (got them working for all of the other roles) do not affect the state of the checkbox (this is Qt 5.12.2, Ubuntu 20.04). I know what state I want to impose on the checkbox, and of course I should only need to do that for the currently existing delegates. However, it seems like it ought to be extremely convoluted -- the way there's a separate delegate for each role -- on top of the hierarchal nature of the data.
So, is there a way to access the set of currently existing delegates for a particular role that is operative in a QML TreeView?