#include "mainWindow.h" mainWindow::mainWindow(QWidget *parent) : QMainWindow(parent) { QWidget *w = new QWidget; setCentralWidget(w); setGeometry(500, 500, 1000, 1000); layout = new QVBoxLayout; layout->addWidget(new QLabel("TestTree")); centralWidget()->setLayout(layout); QPushButton *btn_layer = new QPushButton("Layer"); connect(btn_layer, &QPushButton::clicked, this, &mainWindow::addLayer); layout->addWidget(btn_layer); iModel = new QStandardItemModel(); tree = new QTreeView(this); tree->setModel(iModel); tree->setSelectionMode(QAbstractItemView::ExtendedSelection); tree->setAcceptDrops(true); tree->setDragEnabled(true); tree->setAutoScroll(true); tree->setDragDropMode(QAbstractItemView::InternalMove); tree->setDropIndicatorShown(true); tree->setAlternatingRowColors(true); iModel->setHorizontalHeaderLabels({"Name", "xx1", "xx2", "xx3"}); tree->setSelectionMode(QAbstractItemView::ExtendedSelection); layout->addWidget(tree); } void mainWindow::addLayer(int a) { QStandardItem *itm = new QStandardItem(); itm->setText(QString("Hey you Im parent ") + to_string(a).c_str()); itm->setCheckable(true); itm->isDragEnabled(); itm->isDropEnabled(); itm->setCheckState(Qt::Checked); QStandardItem *itm2 = new QStandardItem(); itm2->setCheckable(true); itm2->setCheckState(Qt::Unchecked); QStandardItem *itm3 = new QStandardItem(); itm3->setText("xx2"); QStandardItem *itm4 = new QStandardItem(); itm4->setText("xx3"); iModel->appendRow({itm, itm2, itm3, itm4}); } mainWindow::~mainWindow() { }