#include "QTreeModel.h"
QTreeModel::QTreeModel(QObject *parent) : QAbstractItemModel(parent)
{
QVector<QVariant> qvr;
qvr << false << "";
m_rootItem = new QTreeItem(qvr);
QVector<QVariant> qvr1;
qvr1 << false << QString::fromLocal8Bit("开始");
QTreeItem *item1 = new QTreeItem(qvr1);
QVector<QVariant> qvr11;
qvr11 << false << QString::fromLocal8Bit("启动");
QTreeItem *item11 = new QTreeItem(qvr11);
QVector<QVariant> qvr12;
qvr12 << false << QString::fromLocal8Bit("模式选择");
QTreeItem *item12 = new QTreeItem(qvr12);
QVector<QVariant> qvr13;
qvr13 << false << QString::fromLocal8Bit("信号选择");
QTreeItem *item13 = new QTreeItem(qvr13);
QVector<QVariant> qvr2;
qvr2 << false << QString::fromLocal8Bit("监视界面");
QTreeItem *item2 = new QTreeItem(qvr2);
QVector<QVariant> qvr21;
qvr21 << false << QString::fromLocal8Bit("监视界面1");
QTreeItem *item21 = new QTreeItem(qvr21);
QVector<QVariant> qvr22;
qvr22 << false << QString::fromLocal8Bit("监视界面2");
QTreeItem *item22 = new QTreeItem(qvr22);
QVector<QVariant> qvr3;
qvr3 << false << QString::fromLocal8Bit("设置");
QTreeItem *item3 = new QTreeItem(qvr3);
QVector<QVariant> qvr31;
qvr31 << false << QString::fromLocal8Bit("监控");
QTreeItem *item31 = new QTreeItem(qvr31);
QVector<QVariant> qvr32;
qvr32 << false << QString::fromLocal8Bit("刺激");
QTreeItem *item32 = new QTreeItem(qvr32);
QVector<QVariant> qvr33;
qvr33 << false << QString::fromLocal8Bit("声音");
QTreeItem *item33 = new QTreeItem(qvr33);
QVector<QVariant> qvr34;
qvr34 << false << QString::fromLocal8Bit("标记");
QTreeItem *item34 = new QTreeItem(qvr34);
QVector<QVariant> qvr4;
qvr4 << false << QString::fromLocal8Bit("报告");
QTreeItem *item4 = new QTreeItem(qvr4);
QVector<QVariant> qvr41;
qvr41 << false << QString::fromLocal8Bit("监控");
QTreeItem *item41 = new QTreeItem(qvr41);
QVector<QVariant> qvr42;
qvr42 << false << QString::fromLocal8Bit("刺激");
QTreeItem *item42 = new QTreeItem(qvr42);
QVector<QVariant> qvr43;
qvr43 << false << QString::fromLocal8Bit("报告1");
QTreeItem *item43 = new QTreeItem(qvr43);
QVector<QVariant> qvr5;
qvr5 << false << QString::fromLocal8Bit("反演");
QTreeItem *item5 = new QTreeItem(qvr5);
QVector<QVariant> qvr51;
qvr51 << false << QString::fromLocal8Bit("监控");
QTreeItem *item51 = new QTreeItem(qvr51);
QVector<QVariant> qvr52;
qvr52 << false << QString::fromLocal8Bit("刺激");
QTreeItem *item52 = new QTreeItem(qvr52);
QVector<QVariant> qvr53;
qvr53 << false << QString::fromLocal8Bit("反演1");
QTreeItem *item53 = new QTreeItem(qvr53);
QVector<QVariant> qvr6;
qvr6 << false << QString::fromLocal8Bit("系统设置");
QTreeItem *item6 = new QTreeItem(qvr6);
QVector<QVariant> qvr61;
qvr61 << false << QString::fromLocal8Bit("设置1");
QTreeItem *item61 = new QTreeItem(qvr61);
QVector<QVariant> qvr62;
qvr62 << false << QString::fromLocal8Bit("设置2");
QTreeItem *item62 = new QTreeItem(qvr62);
QVector<QVariant> qvr63;
qvr63 << false << QString::fromLocal8Bit("设置3");
QTreeItem *item63 = new QTreeItem(qvr63);
m_rootItem->appendChild(item1);
item1->appendChild(item11);
item1->appendChild(item12);
item1->appendChild(item13);
m_rootItem->appendChild(item2);
item2->appendChild(item21);
item2->appendChild(item22);
m_rootItem->appendChild(item3);
item3->appendChild(item31);
item3->appendChild(item32);
item3->appendChild(item33);
item3->appendChild(item34);
m_rootItem->appendChild(item4);
item4->appendChild(item41);
item4->appendChild(item42);
item4->appendChild(item43);
m_rootItem->appendChild(item5);
item5->appendChild(item51);
item5->appendChild(item52);
item5->appendChild(item53);
m_rootItem->appendChild(item6);
item6->appendChild(item61);
item6->appendChild(item62);
item6->appendChild(item63);
m_roleName.insert(QTreeItem::NodeSelectStateRole,"nodeSelectState");
m_roleName.insert(QTreeItem::NodeNameRole,"nodeName");
}
QTreeModel::~QTreeModel()
{
if(m_rootItem)
{
delete m_rootItem;
}
m_rootItem = nullptr;
}
QVariant QTreeModel::data(const QModelIndex &index, int role) const
{
if(!index.isValid())
{
return QVariant();
}
if(role > QTreeItem::NodeNameRole || role < QTreeItem::NodeSelectStateRole)
{
return QVariant();
}
QTreeItem *item = static_cast<QTreeItem*>(index.internalPointer());
if(item)
{
QVariant qvar = item->data(role - QTreeItem::NodeSelectStateRole);
// QString qsNodeInfo = qvar.value<QString>();
return qvar;
}
else
{
return QVariant();
}
}
QModelIndex QTreeModel::index(int row, int column, const QModelIndex &parent) const
{
if(!hasIndex(row, column, parent))
{
return QModelIndex();
}
if(!parent.isValid())
{
if((row >= 0) && (row < m_rootItem->getChildCount()))
{
return createIndex(row,column,m_rootItem->getChild(row));
}
}
else
{
QTreeItem *parentItem = static_cast<QTreeItem*>(parent.internalPointer());
return createIndex(row, column, parentItem->getChild(row));
}
return QModelIndex();
}
QModelIndex QTreeModel::parent(const QModelIndex &index) const
{
if(!index.isValid())
{
return QModelIndex();
}
QTreeItem *childItem = static_cast<QTreeItem*>(index.internalPointer());
QTreeItem *parentItem = childItem->getParent();
if(parentItem == nullptr || parentItem == m_rootItem)
{
return QModelIndex();
}
return createIndex(parentItem->getRows(), 0, parentItem);
}
int QTreeModel::rowCount(const QModelIndex &parent) const
{
QTreeItem *parentItem;
if(parent.column() > 0)
{
return 0;
}
if(!parent.isValid())
{
parentItem = m_rootItem;
}
else
{
parentItem = static_cast<QTreeItem*>(parent.internalPointer());
}
if (parentItem)
return parentItem->getChildCount();
return 0;
}
int QTreeModel::columnCount(const QModelIndex &parent) const
{
if(parent.isValid())
{
return static_cast<QTreeItem*>(parent.internalPointer())->getColumnCount();
}
else
{
return m_rootItem->getColumnCount();
}
}
QHash<int, QByteArray> QTreeModel::roleNames() const
{
return m_roleName;
}
Qt::ItemFlags QTreeModel::flags(const QModelIndex &index) const
{
if(!index.isValid())
{
return 0;
}
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
}
void QTreeModel::loadData(QList<NODE_INFO> &data)
{
// for(int i = 0; i < data.size(); ++i)
// {
// QString nodeName = data[i].nodeName;
// }
}
QAbstractItemModel *QTreeModel::model()
{
return this;
}
- 1
- 2
前往页