我们应该如何在调用beginInsertRows(parent,first,last)时创建父QModelIndex?

时间:2013-03-28 10:19:46

标签: qt listview models qml qmodelindex

它是this question的更具体版本。

我想向视图报告我将在模型中插入一些行。有两种方法可以调用beginInsertRows

beginInsertRows(QModelIndex(), first, last)

beginInsertRows(createIndex(-1,-1), first, last)

存在差异:在第二个变体QModelIndex中将存储指向我们模型内部的指针。在Qml内部:

void QQuickVisualDataModel::_q_rowsInserted(const QModelIndex &parent, int begin, int end)
{
    Q_D(QQuickVisualDataModel);
    qDebug() << "d->m_adaptorModel.rootIndex = " << d->m_adaptorModel.rootIndex;
    if (parent == d->m_adaptorModel.rootIndex)
        _q_itemsInserted(begin, end - begin + 1);
}

if语句的主体不会被执行,因为rootIndex似乎总是不存储指向模型的指针(即它存储NULL)

我创建了test Qt5 application

所以,我的问题是: 是错误还是功能?有人在我之前试过这个错误的调用吗?

0 个答案:

没有答案