设计的思路:
1.TreeView :public QTreeView
并在类中this->setModel()
就可以实现出来 树状结构 的形状
2.点击树桩的item,在主目录显示
3. 加载图片、点云内容在树状目录上更新
点击显示就不贴图了。
代码
1.建立形状
void NewTreeView::init(QString name) {
mainModel = new QStandardItemModel;
mainModel->setHorizontalHeaderLabels(QStringList() << QString::fromLocal8Bit("工程"));
QStandardItem*project = new QStandardItem(name);
project->setData(1,257);
mainModel->appendRow(project);
rootImage = new QStandardItem(QString::fromLocal8Bit("图像"));
rootImage->setData(1);
project->appendRow(rootImage);
rootPoint = new QStandardItem(QString::fromLocal8Bit("点云"));
rootPoint->setData(1);
project->appendRow(rootPoint);
rootMatch = new QStandardItem(QString::fromLocal8Bit("拼接图"));
rootMatch->setData(1);
project->appendRow(rootMatch);
QModelIndex parent;
this->setModel(mainModel);
}
void NewTreeView::InsertRowsSlot(const QString& rowName,const int &contentFlag) {
/***
contentFlag :1 represent image
2 represent point txt
3 matched iamges
*****/
switch (contentFlag) {
case 1:
{
QStandardItem *item = new QStandardItem(rowName);
rootImage->appendRow(item);
break;
}
case 2:
{
QStandardItem *itemPoint = new QStandardItem(rowName);
rootImage->appendRow(itemPoint);
break;
}
case 3:
{
QStandardItem *itemMatch = new QStandardItem(rowName);
rootImage->appendRow(itemMatch);
break;
}
}
}