首页| 论坛| 消息

标题:QTableView 内存占用过大?
作者:kaon
日期:2020-08-16 15:46
内容:

#ifndef TESTMODEL_H
#define TESTMODEL_H
#include
class TestModel : public QAbstractTableModel
{
Q_OBJECT
public:
explicit TestModel(QObject *parent = nullptr);
virtual int rowCount(const QModelIndex & parent) const;
virtual int columnCount(const QModelIndex &parent) const;
virtual QVariant data(const QModelIndex &index, int role) const;
virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const;
bool addData(int i);
private:
QVector m_list;
};
#endif // TESTMODEL_H
#include "testmodel.h"
TestModel::TestModel(QObject *parent)
{
}
int TestModel::rowCount(const QModelIndex &parent) const
{
return m_list.size();
}
int TestModel::columnCount(const QModelIndex &parent) const
{
return 100;
}
QVariant TestModel::data(const QModelIndex &index, int role) const
{
return QVariant();
}
QVariant TestModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if (orientation == Qt::Vertical) return QString::number(section);
if (role != Qt::DisplayRole) return QVariant();
return QString::number(section);
}
bool TestModel::addData(int i)
{
m_list.push_back(i);
return true;
}
#include
#include "testmodel.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
TestModel model;
for(int i = 0; i < 100000; ++i)
{
model.addData(i);
&nbsp ..


#1 [kaon 08-16 21:10]
5.9.9没有这个问题,似乎5.15就不行,
https://forum.qt.io/topic/118086/slow-performance-and-large-memory-usage-with-qtableview-in-qt-5-15
这边回答是win7 mingw64 5.15可以,linux可以, 其他尚未求证
#2 [kenbe 08-17 13:43]
我在qt5.9.8下面6w条数据,8列,用了100多M的内存。
#3 回 kenbe 的帖子 [kaon 08-19 10:46]
kenbe:我在qt5.9.8下面6w条数据,8列,用了100多M的内存。 (2020-08-17 13:43) 
20w条数据,100列,数据都是空的,占用也就10-20M

回复 发表
主题 版块