gpt4 book ai didi

用于显示大量数据行的 Qt 小部件

转载 作者:行者123 更新时间:2023-12-01 02:20:09 25 4
gpt4 key购买 nike

我正在尝试使用 Qt (5.1) 在可 ScrollView 中显示大量柱状记录。

例如,我希望能够浏览的行数可以从 1 亿到 10 亿不等。

带有自定义模型的 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)

最佳答案

如果是表格数据,我会使用表格。我会用自定义 QAbstractTableModel 编写自定义 QTableView。在 QTableView 中,您可以控制所有可见项目。我会在 QTableView 和它的模型之间进行某种检查或共享变量来控制应该显示多少数据。通过覆盖 QAbstractTableModel 中的 data 方法,您可以指定要显示的数据量。你也可以弄乱 QTableView 的滚动条,让事情看起来和感觉更好。

如果您真的不关心编辑或外观,您可以使用设置为只读的简单 QTextEdit/QTextBrowser。

注意:带有自定义模型的 QTableWidget 有点毫无意义。 QTableWidget 和 QTableView 之间的主要区别在于 QTableWidget 有自己的预制模型。

关于用于显示大量数据行的 Qt 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21159095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com