QVariant data(const QModelIndex& index,int role) const
用于返回数据.如果您需要根据QModelIndex行和列在此处获取数据并从某个容器中检索它,也许
std::vector<:vector> > data;
您必须定义此类映射并在data()和setData()函数中使用它来处理与底层模型数据的交互.
或者,QAbstractItemModel和QTreeView提供了将类(即TreeItem)分配给每个QModelIndex的方法,因此您可以使用从QModelIndex.internalPointer()函数返回的指针的static_cast来检索指向每个数据的指针:
TreeItem *item = static_cast(index.internalPointer());
那么你可以创建一些映射:
// sets the role data for the item at to and updates
// affected TreeItems and ModuleInfo. returns true if successful
// otherwise returns false
bool ModuleEnablerDialogTreeModel::setData(const QModelIndex & index,const QVariant & value,int role) {
if (role
== Qt::CheckStateRole&& index.column()==ModuleEnablerDialog_CheckBoxColumn) {
TreeItem *item = static_cast(index.internal