Russian Qt Forum
Сентябрь 30, 2024, 18:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: СРОЧНО! QTReeView draq&drop ищу example  (Прочитано 6689 раз)
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();
}
}


при перетаскивании элемента дерева он вставляет пустые элементы в корень, а не в то место куда я подвёл мышь
буду благодарен за любую помощь;
Записан
Dendy
Гость
« Ответ #1 : Декабрь 03, 2006, 01:57 »

Делали, если что конкретное - можно подсказать. А по абстрактньІм примерам смотреть:
1. Assistant. На самой главной странице посередине ссьІлка: Drag and Drop
2. qtdir/examples/draganddrop
Записан
evilguard
Гость
« Ответ #2 : Март 20, 2007, 19:59 »

Аналогичный вопрос, нужно научиться переставлять элементы QTreeView. Если кто делал это, пожалуйста опишите схематично, что для этого нужно делать.
Записан
Mixolap
Гость
« Ответ #3 : Март 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");

В итоге все таскалось как замышлялось и куда замышлялось
Записан
evilguard
Гость
« Ответ #4 : Март 21, 2007, 21:56 »

Mixolap
Ну это же QTreeWidget - там уже все реализовано должно быть)
У меня именно по QTreeView. В частности сейчас такой вопрос появился - мне нужно, чтобы элементы моджели можно было дропать только между элементами, а не на них. Убрал у элементов флаг Qt::ItemIsDropEnabled, вместе с невозможностью дропать на элементы теперь нельзя дропать и между ними. Что делать?
Записан
evilguard
Гость
« Ответ #5 : Март 24, 2007, 16:09 »

Проблему так и не решил, помогите кто это делал - хотя бы схематично опишите что делать надо, а как я уж сам разберусь
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.137 секунд. Запросов: 21.