Qt中的树形视图中项目未排序

3

在Qt文档中有一个非常简单的树模型示例。我添加了一行

view.setSortingEnabled(true);

main.cpp中启用树形视图排序。当我运行它时,我可以在标题中看到一个排序指示器。然而,无论我如何点击标题,项目都没有排序。我是否忽略了什么?

1个回答

3
使用QSortFilterProxyModel作为你的视图的过滤器和排序模型。
视图的sortingEnabled属性可以启用视图中的排序按钮。然而,实际的排序需要在模型的sort()方法中实现。
使用QSortFilterProxyModel可以这样做:
QSortFilterProxyModel* pProxyModel = new QSortFilterProxyModel(pView);
pProxyModel->setSourceModel(pModel);
pView->setModel(pMdl);
pView->setSortingEnabled(true);

如果我只需要对父项下的项目进行排序(而不是全部),有什么方法可以实现吗?谢谢。 - user1899020
你可以查看sort()方法或QSortFilterProxyModel::lessThan()方法。 - spiritwolfform

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接