Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: major_pronin от Декабрь 02, 2006, 23:47



Название: СРОЧНО! QTReeView draq&drop ищу example
Отправлено: major_pronin от Декабрь 02, 2006, 23:47
пытаюсь разобраться с draq&drop;
если кто делал нечто подобное - прошу откликнуться и поделиться примером;

проблема в следующем

Код:
void dragdrop::dropEvent(QDropEvent *event)
{
if (event->mimeData()->hasText())
{
QString text = event->mimeData()->text();
QVariant s = event->mimeData()->text();
int row=0;
QModelIndex parent;
parent=this->model()->createIndex(row,0,ind);;

row = this->model()->rowCount(parent);
this->model()->insertRows(row,1,parent);
this->model()->setData(parent, s, Qt::EditRole); //this->model()->dropMimeData(event->mimeData(),Qt::MoveAction,row,1,parent);

event->acceptProposedAction();
//event->setDropAction(Qt::MoveAction);
//event->accept();
}
}


при перетаскивании элемента дерева он вставляет пустые элементы в корень, а не в то место куда я подвёл мышь
буду благодарен за любую помощь;


Название: СРОЧНО! QTReeView draq&drop ищу example
Отправлено: Dendy от Декабрь 03, 2006, 01:57
Делали, если что конкретное - можно подсказать. А по абстрактньІм примерам смотреть:
1. Assistant. На самой главной странице посередине ссьІлка: Drag and Drop
2. qtdir/examples/draganddrop


Название: СРОЧНО! QTReeView draq&drop ищу example
Отправлено: evilguard от Март 20, 2007, 19:59
Аналогичный вопрос, нужно научиться переставлять элементы QTreeView. Если кто делал это, пожалуйста опишите схематично, что для этого нужно делать.


Название: СРОЧНО! QTReeView draq&drop ищу example
Отправлено: Mixolap от Март 21, 2007, 19:03
В treeForms (QTreeWidget) выставил свойства:
accepDrops   = true
dragEnabled  = true
dragDropMode = QAbstractItemView::InternalMove

Так создавал элементы на которые перетаскивал
     QTreeWidgetItem *form = new QTreeWidgetItem(treeForms);
     form->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsDropEnabled | Qt::ItemIsEnabled);
     form->setText(0, "Form");

Так создавал элементы которые перетаскивал:

     QTreeWidgetItem *comp = new QTreeWidgetItem(treeForms);   
     comp->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled);
     comp->setText(0,"element name");

В итоге все таскалось как замышлялось и куда замышлялось


Название: СРОЧНО! QTReeView draq&drop ищу example
Отправлено: evilguard от Март 21, 2007, 21:56
Mixolap
Ну это же QTreeWidget - там уже все реализовано должно быть)
У меня именно по QTreeView. В частности сейчас такой вопрос появился - мне нужно, чтобы элементы моджели можно было дропать только между элементами, а не на них. Убрал у элементов флаг Qt::ItemIsDropEnabled, вместе с невозможностью дропать на элементы теперь нельзя дропать и между ними. Что делать?


Название: СРОЧНО! QTReeView draq&drop ищу example
Отправлено: evilguard от Март 24, 2007, 16:09
Проблему так и не решил, помогите кто это делал - хотя бы схематично опишите что делать надо, а как я уж сам разберусь