1. Introduction
Encountered a problem: using QStandardItemModel has high memory overhead and slow loading
Great improvement after using the custom model
Second, the effect map
3. Source code
TreeItem
#ifndef TREEITEM_H
#define TREEITEM_H
#include <QVariant>
#include "czcore_global.h"
class CZCORESHARED_EXPORT TreeItem
{
public:
explicit TreeItem(const QVariant &data, TreeItem *parentItem = 0);
~TreeItem();
/**
* @brief 在本节点下增加子节点
* @param child
*/
void appendChild(TreeItem *child);
/**
* @brief 清空所有节点
*/
void removeChilds();
/**
* @brief 获取第row个子节点指针
* @param row
* @return
*/
TreeItem *child(int row);
/**
* @brief 获取父节点指针
* @return
*/
TreeItem *parentItem();
/**
* @brief 子节点计数
* @return
*/
int childCount() const;
/**
* @brief 获取该节点是父节点的第几个子节点
* @return
*/
int row() const;
void setData(const QVariant &data);
QVariant data() const;
private:
QList<TreeItem *> m_childItems; /**< 子节点 */
TreeItem *m_parentItem; /**< 父节点 */
QVariant m_data; /**< 存储数据 */
};
#endif // TREEITEM_H
To be done!