我有一个树状模型(如果非空则高度始终为2)。在树视图中,数据被正确显示。但是,我想在两个ListViews中显示数据,dupFilesOverview
和dupFilesDetailview
:dupFilesOverview
显示深度为1的元素,而dupFileDetailView
应该显示概述中所选元素的子元素。
ui.dupFilesOverview->setModel(&dm);
ui.dupFilesDetailview->setModel(&dm)
QObject::connect(ui.dupFilesOverview->selectionModel(), &QItemSelectionModel::selectionChanged, [&ui, &dm](const QItemSelection& selection) {
QModelIndex index =selection.indexes().first();
ui.dupFilesDetailview->setRootIndex(index);
});
通过一些qDebug输出,
qDebug() << index << dm.data(index, Qt::DisplayRole) << dm.hasChildren(index) << dm.data(index.child(1,0), Qt::DisplayRole);
我验证了我获得的索引确实是我想要的索引:它是有效的,并且有预期的子索引。从文档中,我希望dupFilesDetailDetailview
现在在指定索引处显示我的模型的子节点。唉,它还是一片空白。我还遗漏了什么吗?
最后证明是模型中一个令人尴尬的误差:parent
函数返回了错误的索引