Since the items in a model are not QObjects (nor QWidgets), you will not be able to add a property to the item, or style them with stylesheets.
I have two suggestions for doing what you want to do :
1) (C++ only) Attach your QTreeView
to a QStandardItemModel
, and when you add items as QStandardItem
objects, you can call QStandardItem::setBackground()
with either Qt::blue
or Qt::red
depending of whether the item is a room or a user.
2) (C++ and CSS) Define a QStyledItemDelegate
that you attach to your QTreeView
. In your reimplementation of QStyledItemDelegate::paint()
method, use a QLabel
to display the content of the item, then set a property on that QLabel
. You will then be able to use a stylesheet to customize the look of the label :
QLabel[isUser="true"] { background: blue; }
QLabel[isRoom="true"] { background: red; }