PDA

View Full Version : Drag and Drop item inside QTreeWidget



nina1983
3rd July 2008, 15:33
Dear,

I'm new with Qt, it's one day that I'm trying to solve this problem...
I want to be able to drag and drop elements inside my QTreeWidget but I want that the hierarchy is respected... here an example:


QTreeWidget* tree = new QTreeWidget(QDialog);
tree->setAcceptDrops(true);
tree->setDragEnabled(true);
tree->setDragDropMode(QAbstractItemView::InternalMove);

QTreeWidgetItem* dad = new QTreeWidgetItem(tree,0);

QTreeWidgetItem* child = new QTreeWidgetItem(dad,0);

I want to be able to drag and drop only "dad" elements (with its childs attahced obviously) at the same level as the other "dad" elements...
I hope you can understand my problem... if not please let me know and I'll try to explain it better!
Thank you very much

Lisa

jgoday
3rd July 2008, 17:06
Maybe you can override the dropEvent ( QDropEvent * event ) from QAbstractItemView in your QTreeView and do something like that



void MyTreeView::dropEvent(QDropEvent * event)
{
QModelIndex dropIndex = indexAt(event->pos());
if (!dropIndex.parent().isValid()) { // if i have no parent, let the event do his job
QTreeView::dropEvent(event);
}
}

caduel
3rd July 2008, 22:29
Check QStandardItem::setFlags and Qt::ItemIsDragEnabled etc.

HTH

jpn
5th July 2008, 18:14
Check QStandardItem::setFlags and Qt::ItemIsDragEnabled etc.
You mean QTreeWidgetItem::setFlags(), right? :)

caduel
6th July 2008, 11:43
Sure. Just checking if somebody was paying attention! :o