- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的应用程序的主视图包含一个单级(无子级)QTreeView,平均显示 30,000 个项目。由于项目的创建方式,它们未排序地插入到模型中。这意味着在应用程序启动时,我必须按字母顺序对 View 中的项目进行排序,这需要将近 1 秒的时间,在完成之前留下无响应的灰色屏幕。 (因为窗口还没有画)
有什么方法可以将 QSortFilerProxyModel 排序到单独的线程中,或者是否有任何其他替代方法来解决这个问题?
下面是我的lessThan()代码,供引用:(左右是传给函数的两个QModelIndexes)
QString leftString = left.data(PackageModel::NameRole).toString();
QString rightString = right.data(PackageModel::NameRole).toString();
return leftString < rightString;
提前致谢。
最佳答案
不要对 View 中的项目进行排序。将它们添加到临时列表并使用 QtConcurrent::run
对该列表进行排序.完成后(使用 QFutureWatcher
知道什么时候),设置您的模型。在执行排序时,您可以显示“请稍候”消息或跳动消息。
关于c++ - 如何线程化 QSortFilterProxyModel 的排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3833535/
我想做的:从模型中获取项目并使用排序代理按不同的角色对它们进行排序:预期输出: 实际输出包含不应该存在的空行: 您可以看到空行展开了 ListView,甚至可以通过光标进行选择。 以下是产生此错误行为
我想按日期对表格进行排序。问题是它们被解释为字符串,因此我的本地日期格式排序错误,如 26。九月 大于 16。十一月,因为 26 > 16。 无论如何,我已经建立了自己的模型并像这样尝试: QVari
我现在有点绝望。当插入到 View 中时,我的带有子类 QStirngListModel 的模型类工作得很好。当我在模型和 View 之间插入 qt 的 QSortFilterProxyModel 时
我有一个从 QAbstractListModel 继承而来的模型,它有一个 QList 来维护包含 QDateTime 的数据,该数据用于维护此列表。我必须将此数据维护一个小时,即旧数据将从列表中删除
在我的 FilterProxyModel 中,我想从我的 View 中删除第 2 列和第 5 列。所以我是这样做的 proxy_filter->removeColumns(2,1); proxy_fi
我对 Qt 中的此类对象非常缺乏经验,我需要知道是否有办法在过滤后检索数据(用于对它们执行某些操作,例如导出到另一个文件中)。 情况是这样的,我从数据库获取数据并将其存储在 python 列表中,之后
我有一个 QTableWidget,其中包含来自数据库的数据,我想实时搜索其内容(当我输入字母时,他会显示结果)?欢迎任何帮助。非常感谢。 这是我的代码: class Filter: def
QSortFilterProxyModel 似乎限制了可以在 QTableView 中显示的数据量,但仅限于应用过滤器时。似乎限制是数据大小而不是记录数,因为我可以在此处的示例中放入比我看到该行为的实
我正在使用 QSortFilterProxyModel 来过滤来自 QAbstractListModel 的结果。但是,我想返回原始模型中不存在的第一个条目,也就是说,它在某种程度上是人为的。 这是我
假设我有一个列表变量 datalist 存储 10,000 个字符串实体。QTableView 只需要显示其中的一些实体。这就是为什么 QTableView 被指定为 QSortFilterProxy
我正在尝试实现一个可在多个列上排序的表格。 Qt 的 QSortFilterProxyModel 仅支持对一列进行排序(至少在 Qt 4.6.2 中)。 我找到了 this solution由 git
我有一个 QSortFilterProxyModel 的自定义子类。我用我想要的自定义过滤器覆盖了 filterAcceptsRow。然后我这样使用它: proxy = new MyFilterMod
我正在使用继承 QSortFilterProxyModel 的类来仅对 TableView 中的行进行排序。 我启用了 dynamicSort 以确保即使在我加载模型或添加行时我的 View 也保持排
在我的项目中,我在 TreeView 中显示了一个模型。我使用 QSortFilterProxyModel 根据 Qt::UserRole+1 中设置的 ID 对模型进行排序。这将我的列表按“类型”划
我有一个包含 QTreeView 的应用程序其底层模型,比如 MyModel源自 QStandardItemModel .为了从 View 中过滤掉MyModel的一些项目, 我把它插到 QSortF
我有简单的模型 View TreeView ,带有 QSortFilterProxyModel 代理来对列进行排序,并使用 QStandardItemModel 作为模型 在每列中都有字符串排序良好,
我们有一个QSortFilterProxyModel安装在 QTableView和两个(或更多)QLineEdit用于过滤 View (基于这些 QLineEdit 的文本) 在我们看来,我们有一个槽
我有一个QDirModel,其当前目录已设置。然后我有一个 QListView ,它应该显示该目录中的文件。这工作得很好。 现在我想限制显示的文件,因此它只显示 png 文件(文件名以 .png 结尾
我有一个使用 QSortFilterProxyModel 创建表小部件的类。该类将采用字典列表作为数据,然后使用字典的键值填充表列和行。将表设置为按浮点值排序时,表中的多个字段将变得不可见。但是,当我
我正在使用 qsortfilterproxymodel 从 QstandardModel 过滤数据。我能够在我的测试应用程序中实现这个过滤过程,但是当我实时[集成]使用它时,它似乎没有按预期工作。 [
我是一名优秀的程序员,十分优秀!