一、效果图
二、代码构造思路
自定义treeitem类,封装树形表格每个单元格。重写QAbstractTableModel的虚函数实现对应的方法,关联数据源model与QTreeView视图,设置样式代理修改风格。
三、代码片段
#include "treeitem.h"
treeitem::treeitem(const QVector<QVariant> &itemdata, treeitem *parent)
{
m_pParent = parent;
m_ItemData = itemdata;
}
treeitem::~treeitem()
{
qDeleteAll(m_ChildItems);
}
treeitem *treeitem::child(int row)
{
return m_ChildItems.value(row);
}
int treeitem::childCount() const
{
return m_ChildItems.count();
}
int treeitem::columnCount() const
{
return m_ItemData.count();
}
QVariant treeitem::data(int column) const
{
return m_ItemData.at(column);
}
treeitem *treeitem::Parent()
{
return m_pParent;
}
int treeitem::row() const
{
if(m_pParent)
return m_pParent->m_ChildItems.indexOf(const_cast<treeitem*>(this));
return 0;
}
bool treeitem::insertChildren(int position, int count, int columns