使用QContiguousCache管理内存
使用QContiguousCache原因
在某些环境中,内存是有限的,即使不是,用户仍然不喜欢使用过多内存的应用程序
示例说明
示例展示了如何使用QContiguousCache来管理大型Models的内存使用情况。使用QContiguousCache来管理列表,而不是将整个列表加载到内存中,允许应用程序限制它使用的内存量,而不管它访问的数据集的大小。
代码解析
#include <QContiguousCache>
#include <QAbstractListModel>
QT_FORWARD_DECLARE_CLASS(QTimer)
class RandomListModel : public QAbstractListModel
{
Q_OBJECT
public:
RandomListModel(QObject *parent = 0);
~RandomListModel();
int rowCount(const QModelIndex & = QModelIndex()) const override;
QVariant data(const QModelIndex &, int) const override;
private:
void cacheRows(int, int) const;
QString fetchRow(int) const;
mutable QContiguousCache<QString> m_rows;
const int m_count;
};
#endif
#include "randomlistmodel.h"
#include