c++ - QStandardItemModel 最有效的行删除策略

标签 c++ qt qt4

我有一个包含 100,000 条数据记录的 QStandardItemModel,以及一个用于过滤和排序功能的 QSortFilterProxyModel。我想根据其中一列的值删除大量记录,比如 100,000 条。

当前实现迭代源模型,测试适当列中的值,并调用 removeRow。事实证明这是一种极其缓慢的方法,我不知道为什么(我已经关闭了源模型和 sortfilterproxymodel 的信号)。

什么是更有效的方法?

QSortFilterProxyModel 可以提供帮助吗?通过创建要删除的记录选择并使用 removeRows?

谢谢, 安德烈亚斯

最佳答案

QAbstractItemModel::removeRows()是候选者,前提是行是连续的。如果模型按您用于执行删除测试的列排序,那么您应该可以使用它。

关于c++ - QStandardItemModel 最有效的行删除策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1473107/

相关文章:

c++ - Qt5 C++ : Remove item from QListView's model and how to count items

c++ - Qt 智能指针相当于 Boost::shared_ptr ?

c++ - 如何使用Qt获取重定向页面的html代码?

c++ - 字符解码转换函数实现

c++ - 你必须去掉 WinMain 才能将项目变成库吗

qt - 如何在 QMake .pro 文件中指定不同的调试/发布输出目录

qt - 在 Maemo 中将窗口置于前面

c++ - 编译 Qt Installer Framework static

c++ - 如何在迭代无序 map 时从无序 map 中删除多个项目?

qt - 将IplImage转换为QByteArray