Qt5中模型-视图-代理的结构,可以实现各种各样的自定义的控件,功能很强大,但是由于将数据和视图及代理拆分开了,所以需要重写很多自定义的接口,上手比较困难,使用起来不是很方便,这里提供一个案例供大家参考,希望有帮助。treeitem.h/treeitem.cpp是每个数据项目中的数据结构,treemodel.h/treemodel.cpp是对应的数据模型,treeview.h/treeview.cpp是对应的视图定义,treedelegate.h/treedelegate.cpp是对应的条目的UI代理,main.cpp是调用的入口。
treeitem.h
#ifndef TREEITEM_H
#define TREEITEM_H
#include <QList>
#include <QVariant>
#include <QVector>
class TreeItem
{
public:
explicit TreeItem(const QVector<QVariant> &data, TreeItem *parent = 0);
~T