【发布时间】:2011-04-19 12:17:16
【问题描述】:
我的应用程序的主视图包含一个平均显示 30,000 个项目的单级(无子级)QTreeView。由于项目的创建方式,它们被插入到未排序的模型中。这意味着在应用程序启动时,我必须按字母顺序对视图中的项目进行排序,这需要将近 1 秒,在完成之前留下无响应的灰屏。 (由于窗口还没有画)
有什么方法可以将 QSortFilerProxyModel 排序到一个单独的线程中,还是有其他替代方法来解决这个问题?
这是我的lessThan()代码,供参考:(左右是传递给函数的两个QModelIndexes)
QString leftString = left.data(PackageModel::NameRole).toString();
QString rightString = right.data(PackageModel::NameRole).toString();
return leftString < rightString;
提前致谢。
【问题讨论】:
-
你是如何在启动时开始排序的?
-
m_packageView->sortByColumn(0, Qt::AscendingOrder);