【发布时间】:2015-09-23 23:05:18
【问题描述】:
我有几个组合框,其中包含大约 100K 行甚至更多的非常挖掘的数据集。我用QStandardItemModel 尝试过——如果模型是预加载的,那么工作速度足够快,如果在单独的线程中执行模型加载也需要几秒钟。尝试使用QSqlQueryModel 的组合框而不使用线程来提高性能,但体验到它的工作速度比QStandardItemModel 慢得多(例如,在我们的项目中,QSqlQueryModel 使用QTreeView 处理如此大量的数据非常快)。这里可能是什么问题?有没有办法加速组合框,一些参数?
附: Qt doc QComboBox::AdjustToMinimumContentsLengthWithIcon 的建议并没有加快速度:与此类组合的对话开始时间过长并退出 10-20 秒。 AdjustToMinimumContentsLength 工作得快一点,但无论如何延迟太长了。
【问题讨论】:
-
你真的需要一个包含这么多项目的组合框吗?
-
是的,用户应该从预定义的值中选择一个项目:一些 EMR 值集 - 包含大约 100k 个问题列表的医疗应用程序。
-
问题可能出在所有模型的单个 QSqlDatabase 对象中吗?我应该为每个 QSqlQueryModel 使用单独的 QSqlDatabase 实例吗?
-
我也有同样的问题。我认为 QComboBox 会创建所有数据视图,即使它们没有显示。
-
Paul-Sebastian,您可以在此处找到完整解决方案:stackoverflow.com/a/33454284/630169
标签: performance model-view-controller qt4 qcombobox