[Development] Views
André Pönitz
Andre.Poenitz at qt.io
Thu Jun 6 17:42:13 CEST 2019
Иван Комиссаров wrote:
> I think, your point is wrong. Despite the fact Qt is a GUI toolkit, it should perform well.
> Take a look at Qt Item Views. They really sucks in terms of performance.
> QAbstractItemModel can have any number of rows/columns (that fits in MAX_INT),
> but which view can really handle that? None of them!
> I had to use a model with 3kk rows in it.
"3kk" doesn't parse as number for me, but assuming that's 3 * 1024 * 1024
the problem must have been somewhere else as the following shows
10 million entries in a standard QTreeView:
#include <QApplication>
#include <QTreeView>
#include <QAbstractItemModel>
struct Model : QAbstractItemModel
{
QModelIndex index(int row, int column, const QModelIndex &) const
{
return createIndex(row, column);
}
QModelIndex parent(const QModelIndex &) const { return {}; }
int rowCount(const QModelIndex &) const { return 10 * 1000 * 1000; }
int columnCount(const QModelIndex &) const { return 1; }
QVariant data(const QModelIndex &index, int role) const
{
if (index.isValid() && role == Qt::DisplayRole)
return index.row();
return {};
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Model m;
QTreeView v;
v.setUniformRowHeights(true);
v.setModel(&m);
v.show();
return a.exec();
}
Andre'
More information about the Development
mailing list