Поскольку элементы в модели не являются объектами QObject (и не QWidgets), вы не сможете добавить свойство к элементу или стилизовать их с помощью таблиц стилей.
У меня есть два предложения делать то, что вы хотите сделать:
1) (только C ++) Присоедините QTreeView
к QStandardItemModel
, и когда вы добавляете элементы в качестве QStandardItem
объектов, вы можете вызвать QStandardItem::setBackground()
с Qt::blue
или Qt::red
в зависимости от Предметом является комната или пользователь.
2) (C ++ и CSS) Определите QStyledItemDelegate
, который вы прикрепляете к QTreeView
. При повторной реализации метода QStyledItemDelegate::paint()
используйте QLabel
для отображения содержимого элемента, затем установите свойство для этого QLabel
. После этого вы сможете использовать таблицу стилей для настройки внешнего вида метки:
QLabel[isUser="true"] { background: blue; }
QLabel[isRoom="true"] { background: red; }