4

这是这个问题的更具体的版本。

我想向视图报告我将在我的模型中插入一些行。有两种调用方式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 代替)

我已经创建了测试 Qt5 应用程序

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

4

0 回答 0