Название: Нестандартный drag and drop Отправлено: sergs от Январь 22, 2016, 13:53 Есть модель, основаная на QAbstractItemModel. В ней помимо прочего переопределены методы mimeData(), mimeTypes(), dropMimeData() и supportedDropActions(). Причем supportedDropActions() возвращает только Qt::MoveAction. Также есть класс представления, основанный на QTreeView в котором отображаются данные модели.
Сейчас при помощи drag and drop можно выполнять перетаскивание элементов внутри view (менять их порядок, перегруппировывать). Но при перетаскивании элемента в другой view выполняется перемещение. Необходимо реализовать следующее поведение: при перетаскиевании в пределах одного view всегда выполняется перемещение (Qt::MoveAction), а при перетаскивании за пределы view должна быть возможность выполнить либо клопирование, либо перемещение. Попытался реализовать это путём добавления Qt::CopyAction в список разрешенных Код: Qt::DropActions MyTreeModel::supportedDropActions() const Код: void MyTreeView::dropEvent(QDropEvent *event) Название: Re: Нестандартный drag and drop Отправлено: YvenTitan от Январь 22, 2016, 14:25 Можете скинуть переопределенную DropMimeData и строки, где устанавливаете параметры QTreeView для drag and drop
|