这是这个问题的更具体的版本。
我想向视图报告我将在我的模型中插入一些行。有两种调用方式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 应用程序
所以,我的问题是: 它是错误还是功能?有人在我之前尝试过这个错误的调用吗?