我正在使用Qt的示例代码“Simple Dom Model”(http://qt-project.org/doc/qt-4.8/itemviews-simpledommodel.html)。 在QTreeView中读取和显示dom文档正在运行。删除模型中的行也没问题。但我无法弄清楚如何插入行。
我已经搜索了这个问题,但只发现了未回答的问题(例如Qt4: Making "Simple Dom Model" editable; inserting rows)。
也许有人想出来并可以帮助我!?
我的代码:
// DomModel.cpp
bool DomModel::insertRow(int row, const QModelIndex &parent)
{
bool success;
DomItem *parentItem = static_cast<DomItem*>(parent.internalPointer());
beginInsertRows(parent, row, row);
success = parentItem->insertChild(row);
endInsertRows();
return success;
}
// DomItem.cpp
bool DomItem::insertChild(int row)
{
if(row < 0 || row > childItems.size())
{
return false;
}
QDomNode node;
DomItem *item = new DomItem(node, row, this);
childItems.insert(row, item);
return true;
}