Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
QTreeView: "Auto-Checkboxes" and "Checkbox only"?
Other than overriding the flags() and data(Qt::CheckState) members of my QAbstractItemModel based model, is there a way to induce QTreeView to render checkboxes (and tristate boxes) for certain columns of my model? If so, how? Can it be based on datatype returned by data(Qt::DisplayRole)?
Secondly, when QTreeView renders a checkbox, it also seems to leave an area for text. It's even editable(!). How can just render the checkbox?
giesbert last edited by
to enable the check boxes, you need the flags (Qt::ItemIsUserCheckable), If you set Qt::ItemIsEditable, it will be editable by an editfield.
Yeah, I've got the check boxes by setting those flags on my data model.
To clarify: I was wondering if there was a different way, since the choice of how to render a given data type would seem the responsibly of the view, not the model.
treeView->setCellRenderRule(QBool, QCheckboxRenderRule, optionalColumnNumber);
andre last edited by
You could use a delegate, but that seems overkill. What might be a compromise, is to use a proxy model to do this. There is even one ready made available on the wiki in the snippets section...
Thanks, Andre. I'll take a look.