QTreeView

引用

#include"QDebug"

#include"QTreeView"

#include"QStandardItemModel"

#include"QPushButton"

#include"QItemSelectionModel"

#include"QModelIndex"

#include"QStandardItem"

代码

    this->resize(1000,1000);

    //创建树

    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("相关信息1")<<QStringLiteral("相关信息2"));

    //model->setVerticalHeaderLabels(QStringList()<<QStringLiteral("项目名")<<QStringLiteral("相关信息1")<<QStringLiteral("相关信息2"));

    QStandardItem * item = new QStandardItem(tr("item one"));//创建一个条目对象

    model->appendRow(item);

    //去掉表头

    treeView->setHeaderHidden(true);

//利用QList<QStandardItem*>添加节点

    QList itemList1;

    QList itemList2;

    QStandardItem * item1 = new QStandardItem(tr("item one"));//创建一个条目对象

    itemList1.append(item1);

    QStandardItem * item2 = new QStandardItem(tr("item two"));//创建一个条目对象

    itemList1.append(item2);

    QStandardItem * item3 = new QStandardItem(tr("item three"));//创建一个条目对象

  //  item.push_back(item3);

    QStandardItem * item4 = new QStandardItem(tr("item four"));//创建一个条目对象

  // item.push_back(item4);

    QStandardItem * item5 = new QStandardItem(tr("item five"));//创建一个条目对象

    QStandardItem * item6 = new QStandardItem(tr("item five"));//创建一个条目对象

    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"));

    //添加子节点

    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"));

      }

    });

    //删除子节点

    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();

            }

      }

    });

//打开根节点

    treeView->expand(model->indexFromItem(model->item(0)));

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。