获取QTreeView / Model应用程序中给定项的索引

时间:2015-04-28 13:33:17

标签: qt

我的Qt桌面应用程序是在editabletreemodel示例应用程序上构建的。在treemodel.cpp中的示例应用程序中,有一个名为getItem()的方法,它将QModelIndex作为参数并返回指向TreeItem的指针。

这就是方法的样子:

TreeItem *TreeModel::getItem(const QModelIndex &index) const
{
    if (index.isValid()) {
        TreeItem *item = static_cast<TreeItem*>(index.internalPointer());
        if (item)
            return item;
    }
    return rootItem;
}

我想反过来 - 这是为给定的TreeItem返回一个QModelIndex。

我该怎么做?

1 个答案:

答案 0 :(得分:5)

困难......非常困难。而且直接不可能。如果你在Qt示例代码中使用TreeItem,那你就不走运了。你能做的是:

  1. 为您的TreeItem添加唯一标识符
  2. 修改数据函数以获取用户定义角色的唯一ID。您是必须定义此新角色的用户; - )
  3. 使用** QModelIndexList QAbstractItemModel :: match(...)查找TreeItem的索引,该索引返回用户角色的唯一ID。