我想在使用Qt(5.1)的可滚动视图中显示大量柱状记录。比如说,我希望能够浏览的行数从1亿到1亿不等。用于显示大量数据行的Qt小部件
具有自定义模型的QTableWidget可运行几百万行,但QTableWidget为每行分配数据,因为您可以重新调整行高度,因此它必须存储此数据,这可以使用兆字节或甚至千兆字节的内存与100M行。
我不需要重新调整大小的行功能只是一个多列列表将是理想的,但QTreeCtrl似乎并不适用于许多行,而QList似乎只支持单列。
我应该为QAbstractItemView实现一个自定义窗口小部件吗?
对于那些熟悉的wxWidgets/wepython这是可以做到这样的,并与数十亿行的效果很好:
import wx
class VirtualList(wx.ListCtrl):
def __init__(self, parent, id, pos, size, flags):
wx.ListCtrl.__init__(self, parent, id, pos, size, flags)
def OnGetItemText(self, item, column):
return "Row %d, Column %d" % (item, column)
您不需要一次分配所有1亿或10亿行,分配100或200,并且当用户在分配的100或200条记录的末尾附近滚动时,分配新记录并释放那些很远的记录来自有效行,现在查看 – Shf
有'QTreeView'可以处理多行显示,并且比'QTableView'工作更快。它具有'uniformRowHeights'属性,用于保存树视图中的所有项目是否具有相同的高度,从而使视图能够进行一些优化。也允许加载数据块。并非所有数据一次。 –
你可以destribe用户在哪里可以查看(真的需要查看)在一次10亿行的用户?你应该考虑数据获取。因为你不能在x86平台上运行你的程序。 –