QTreeView 使用自定义Model

本文介绍如何在QT中使用自定义Model来处理QTreeView的树形结构。由于QT未为QTreeView提供默认实现,需要通过子类化QAbstractItemModel来创建自己的模型。文中提到QT提供的示例代码能解决很多通用问题,特别是对于层次结构不固定的树形结构,虽然代码看起来复杂,但很有参考价值。
摘要由CSDN通过智能技术生成

        QT对于列表和表格结构都有相应的model实现, 唯独对QTreeView没有提供任何默认实现,只能子类化QAbstractItemModel. 由于树形结构比较复杂,层次结构不固定,用MVC框架实现的确比较费劲. 还好QT提供的这个例子能够处理很多通用问题. 可直接拿过来用, 由于示例代码看起来比较费劲,特笔记记录: 

       QT示例参见$(QTDIR)\examples\itemviews\simpletreemodel:

       Tree Model       

 

一. 树形结构体定义 treeitem.h 

/**
 * @brief 通用树形结构类
 */
class TreeItem
{
public:
    TreeItem(const QList<QVariant> &data,TreeItem *parent=0 );
    ~TreeItem();

    void appendChild(TreeItem *child);
    TreeItem *child(int row);
    int childCount() const;
    int columnCount() const;
    QVariant data(int column) const;
    int row() const;
    TreeItem *parent();

private:
    TreeItem *parentItem;  // 父结点
    QList<TreeItem*&
  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值