我有一个 QSortProxyFilterModel,它是 QTreeView 的模型。 QStandardItemModel 充当 QSortProxyFilterModel 的源模型。
现在我正在尝试获取当前模型的子级数:
// my_filterModel is the QSortProxyFilterModel
// my_model is the QStandardItemModel
QModelIndex currentIndex = my_filterModel->mapToSource(
ui->treeView->currentIndex());
QStandardItem *currentItem = my_model->itemFromIndex(currentIndex);
qDebug() << "Row count: " << currentItem->rowCount();
但是我得到的值不一致。
如果当前项目被折叠,我无法获取其子项,
rowCount()
始终返回0
否则,
rowCount()
返回非零值。
那么,即使物品被折叠,我怎样才能获得所有的孩子呢?
编辑
看起来像是 QTreeView 的一个错误。如果您之前已展开这些子项,则
rowCount()
返回有效值;否则总是返回 0
如果项目被折叠,QTreeView 将返回 0