我有一个包含 100,000 条数据记录的 QStandardItemModel,以及一个用于过滤和排序功能的 QSortFilterProxyModel。我想根据其中一列的值删除大量记录,比如 100,000 条。
当前实现迭代源模型,测试适当列中的值,并调用 removeRow。事实证明这是一种极其缓慢的方法,我不知道为什么(我已经关闭了源模型和 sortfilterproxymodel 的信号)。
什么是更有效的方法?
QSortFilterProxyModel 可以提供帮助吗?通过创建要删除的记录选择并使用 removeRows?
谢谢, 安德烈亚斯
最佳答案
QAbstractItemModel::removeRows()
是候选者,前提是行是连续的。如果模型按您用于执行删除测试的列排序,那么您应该可以使用它。
关于c++ - QStandardItemModel 最有效的行删除策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1473107/