Опитвам се да покажа голямо количество колонни записи в изглед с възможност за превъртане, използвайки Qt (5.1).
Броят на редовете, които бих искал да мога да преглеждам, може да варира от 100 милиона до 1 милиард, да речем.
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)
QTreeView
, който може да обработва многоредов дисплей и работи по-бързо отQTableView
. Има свойствотоuniformRowHeights
, което държи дали всички елементи в дървовидния изглед имат еднаква височина, което позволява на изгледа да прави някои оптимизации. Освен това е позволено да зарежда парчета данни. Не всички данни наведнъж. - person Pie_Jesu   schedule 16.01.2014