QAbstractListModel 如何获取指定key的值
QAbstractListModel 是 Qt 中的一个模型类,用于实现自定义的列表模型。如果想要获取指定 key 的值,需要在自定义的列表模型类中实现 data() 函数。
data() 函数的参数包括 QModelIndex 对象和一个 role 值。其中,QModelIndex 对象包含了行号和列号等信息,可以用来定位特定的数据项。role 值用于指定所需的数据类型,例如 Qt::DisplayRole 表示获取显示数据,Qt::UserRole 表示获取用户自定义数据。
在 data() 函数中,可以根据 QModelIndex 对象的行号和列号获取对应的数据项,然后根据 role 值返回相应的数据。如果想要获取指定 key 的值,可以在 data() 函数中遍历所有数据项,找到对应的 key,然后返回相应的值。
下面是一个简单的示例代码,用于演示如何在 QAbstractListModel 中获取指定 key 的值:
QVariant MyListModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid() || index.row() >= m_data.size())
return QVariant();
if (role == Qt::DisplayRole) {
// 返回显示数据
return m_data[index.row()].name;
} else if (role == Qt::UserRole) {
// 返回用户自定义数据
QString key = "age";
if (m_data[index.row()].data.contains(key)) {
return m_data[index.row()].data[key];
}
}
return QVariant();
}
在上面的代码中,m_data 是一个 QVector
原文地址: https://www.cveoy.top/t/topic/bYme 著作权归作者所有。请勿转载和采集!