Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Boloden от Сентябрь 24, 2011, 15:12



Название: QTreeWidget модель и изменение иерархии
Отправлено: Boloden от Сентябрь 24, 2011, 15:12
Нужно в QTreeWidget определить куда в иерархии мышкой был перемещён QTreeWidgetItem.
Предполагаю, что это можно сделать получив модель с помощью tree->model() и повесить на сигнал rowsMoved(const QModelIndex& , int, int, const QModelIndex& , int) свой слот.
Однако проблема в том, что никакие сигналы при перетаскивании мышкой не доставляются и никаких сообщений об ошибке нет. Как это исправить?


Название: Re: QTreeWidget модель и изменение иерархии
Отправлено: Boloden от Сентябрь 24, 2011, 16:29
Вообще ни один сигнал из модели QTreeWidget полученной через tree->model() не приходит.


Название: Re: QTreeWidget модель и изменение иерархии
Отправлено: kambala от Сентябрь 24, 2011, 16:57
если я правильно понял смысл задачи, то тебе надо почитать про drag & drop


Название: Re: QTreeWidget модель и изменение иерархии
Отправлено: Boloden от Сентябрь 24, 2011, 17:41
Разобрался, ставим treeWidget->viewport()->installEventFilter(this); и дальше обычная работа с drug'n'drop/


Название: Re: QTreeWidget модель и изменение иерархии
Отправлено: kambala от Сентябрь 24, 2011, 18:21
drag & drop делается не через фильтр событий вообще-то (разве что тебе нужны там какие-то суперизвраты). в документации есть целый раздел про это.