Kak*_*adu 5 qt listview models qml qmodelindex
这是这个问题的更具体版本。
我想向视图报告我将向我的模型插入一些行。有两种调用方式beginInsertRows
:
beginInsertRows(QModelIndex(), first, last)
Run Code Online (Sandbox Code Playgroud)
和
beginInsertRows(createIndex(-1,-1), first, last)
Run Code Online (Sandbox Code Playgroud)
有一个区别:在第二个变体中,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);
}
Run Code Online (Sandbox Code Playgroud)
语句主体if
不会被执行,因为它似乎rootIndex
总是不存储指向模型的指针(即它存储 NULL)
我已经创建了测试 Qt5 应用程序
所以,我的问题是: 这是错误还是功能?有人在我之前尝试过这个错误的调用吗?
归档时间: |
|
查看次数: |
1584 次 |
最近记录: |