Qt UserRole就是组件角色,在复杂系统中使用的比较多,原因也很简单,系统复杂,为了组件区分方便。
在Qt中很多类是可以给他添加角色值的,比如说QComboBox中的setItemData()与QStandardItemModel中的setData()这两个函数,都是在Index位置上添加角色值。这两个函数原型如下:
void QComboBox::setItemData ( int index, const QVariant & value, int role = Qt::UserRole );
bool QStandardItemModel::setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole );
如果想在同一Index上添加多个角色值,我们可以利用下面的方法添加:
QStandardItemModel *pModel = new QStandardItemModel;
pModel->setData(pModel->index(0, 0), 1, Qt::UserRole);
pModel->setData(pModel->index(0, 0), 2, Qt::UserRole + 1);