我有一个 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