【Qt Model/View】 QTreeView使用自定义model

一、简介

遇到问题:使用QStandardItemModel内存开销大,加载慢

使用自定model后有较大改善

二、效果图

三、源码

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

待完成!

猜你喜欢

转载自blog.csdn.net/qq_40602000/article/details/123213938
今日推荐