如何在QtreeView中立即显示添加的节点?

如何在QtreeView中立即显示添加的节点?,qt,tree,Qt,Tree,当我展开节点时,everythig运行良好: void DTree::expand(const QModelIndex & index){ if (treeModel->hasChildren(index)) return; DNode &node = *static_cast<DNode*>(index.internalPointer()); qint32 size = node.makeChildren(); treeModel->be

当我展开节点时,everythig运行良好:

void DTree::expand(const QModelIndex & index){
  if (treeModel->hasChildren(index)) return;
  DNode &node = *static_cast<DNode*>(index.internalPointer());
  qint32 size = node.makeChildren();
  treeModel->beginInsertRows(index, 0, size);
  treeModel->endInsertRows();
  setExpanded(index, true);
}
我试图使用QPersistentModelIndex,但没有成功。
提前谢谢你

我只是好奇,如何调用模型的受保护函数
beginInsertRows
?我只是针对这种情况重写了它们:void TreeModel::beginResetModel(){qabstractemodel::beginResetModel();}void TreeModel::endResetModel(){qabstractemodel::endResetModel();}我做错什么了吗?为什么?你说得对!在没有beginInsertRows和endInsertRows()的情况下展开works;但我还是不知道该怎么办。
qint64 DNode::ins(){
.... some code of adding to database a new node
// here I try to make node show. ord() - new node's order in DB which starts with 1
  treeModel->beginInsertRows(treeModel->createIndex(parent->ord() - 1, 0,
    parent), ord() - 1, ord() - 1);
  treeModel->endInsertRows();
........  
}