引用
#include"QDebug"
#include"QTreeView"
#include"QStandardItemModel"
#include"QPushButton"
#include"QItemSelectionModel"
#include"QModelIndex"
#include"QStandardItem"
代碼
????this->resize(1000,1000);
? ? //創(chuàng)建樹
? ? QTreeView *treeView=new QTreeView(this);
? ? treeView->resize(800,800);
? ? treeView->move(100,100);
? ? QStandardItemModel *model=new QStandardItemModel(treeView);
? ? treeView->setModel(model);
? ? //model->setHorizontalHeaderLabels(QStringList()<<QStringLiteral("項目名")<<QStringLiteral("相關(guān)信息1")<<QStringLiteral("相關(guān)信息2"));
? ? //model->setVerticalHeaderLabels(QStringList()<<QStringLiteral("項目名")<<QStringLiteral("相關(guān)信息1")<<QStringLiteral("相關(guān)信息2"));
? ? QStandardItem * item = new QStandardItem(tr("item one"));//創(chuàng)建一個條目對象
? ? model->appendRow(item);
? ? //去掉表頭
? ? treeView->setHeaderHidden(true);
//利用QList<QStandardItem*>添加節(jié)點
? ? QList itemList1;
? ? QList itemList2;
? ? QStandardItem * item1 = new QStandardItem(tr("item one"));//創(chuàng)建一個條目對象
? ? itemList1.append(item1);
? ? QStandardItem * item2 = new QStandardItem(tr("item two"));//創(chuàng)建一個條目對象
? ? itemList1.append(item2);
? ? QStandardItem * item3 = new QStandardItem(tr("item three"));//創(chuàng)建一個條目對象
? //? item.push_back(item3);
? ? QStandardItem * item4 = new QStandardItem(tr("item four"));//創(chuàng)建一個條目對象
? // item.push_back(item4);
? ? QStandardItem * item5 = new QStandardItem(tr("item five"));//創(chuàng)建一個條目對象
? ? QStandardItem * item6 = new QStandardItem(tr("item five"));//創(chuàng)建一個條目對象
? ? itemList2<
? ? model->appendRow(item3);
? ? model->appendRow(item4);
? ? //model->setItem(1,new QStandardItem("123"));
? ? item3->appendRows(itemList1);
? ? item2->appendRows(itemList2);
? ? //item->setChild(0,new QStandardItem("456"));
? ? //添加子節(jié)點
? ? QPushButton *buttonAdd=new QPushButton(treeView);
? ? buttonAdd->move(300,700);
? ? buttonAdd->setText("添加");
? ? QItemSelectionModel *currentModel=new QItemSelectionModel();
? ? connect(buttonAdd,&QPushButton::clicked,this,[=](){?
? ? ? ? QStandardItem *currentModel=model->itemFromIndex(treeView->currentIndex());
? ? ? ? if(model->rowCount()>0)
? ? ? {
? ? ? ? ? ? currentModel->appendRow(new QStandardItem("333"));
? ? ? }
? ? });
? ? //刪除子節(jié)點
? ? QPushButton *buttonDel=new QPushButton(treeView);
? ? buttonDel->move(500,700);
? ? buttonDel->setText("刪除");
? ? connect(buttonDel,&QPushButton::clicked,this,[=](){
? ? ? ? QStandardItem *currentModel=model->itemFromIndex(treeView->currentIndex());
? ? ? ? qDebug()<<"treeView->currentIndex().row()"<currentIndex().row();
? ? ? ? if(model->rowCount()>0)
? ? ? {
? ? ? ? ? ? if(currentModel->parent())
? ? ? ? ? ? {
? ? ? ? ? ? ? ? currentModel->parent()->removeRow(treeView->currentIndex().row());
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? model->removeRow(treeView->currentIndex().row());
? ? ? ? ? ? ? ? qDebug()<rowCount();
? ? ? ? ? ? }
? ? ? }
? ? });
//打開根節(jié)點
? ? treeView->expand(model->indexFromItem(model->item(0)));