一个项目中需要将左侧侧边栏中的树节点拖拽至指定区域,并在该区域内进行相关操作,开发之前做的一个小测试,结果如下,在该区域内可以拖拽。
1、创建QTreeWidgets,搭建树型结构,代码如下:
DragTreeWidget::DragTreeWidget(QWidget *parent)
{
m_treewidget = new QTreeWidget();
// 初始化项目树
treewidgetinit(m_treewidget);
}
DragTreeWidget::~DragTreeWidget()
{
}
void DragTreeWidget::treewidgetinit(QTreeWidget *treewidget)
{
QTreeWidgetItem *imageItem1 = new QTreeWidgetItem(this,QStringList(QString("图像1")));
imageItem1->setIcon(0,QIcon("xxx.png"));
QTreeWidgetItem *imageItem1_1 = new QTreeWidgetItem(this,QStringList(QString("Band1"))); //子节点1
imageItem1->addChild(imageItem1_1); //添加子节点
QTreeWidgetItem *imageItem2 = new QTreeWidgetItem(this,QStringList(QString("图像2")));
QTreeWidgetItem *imageItem2_1 = new QTreeWidgetItem(imageItem2,QStringList(QString("Band1"))); //子节点1
QTreeWidgetItem *imageItem2_2 = new QTreeWidgetItem(imageItem2,QStringList(QString("Band2"))); //子节点2
imageItem2->addChild(imageItem2_1); //添加子节点
imageItem2->addChild(imageItem2_2);
this->expandAll(); //结点全部展开
}