Название: [drag&drop] Куда бросили [решено] Отправлено: Tonal от Декабрь 21, 2011, 10:07 Нужно в модели, в реализации dropMimeData (переопределение QAbstractItemModel::dropMimeData) узнать точное положение куда бросили - ровно на итем, под него или над ним.
В QAbstractItemView есть функция защищённая dropIndicatorPosition которая даёт эту инфу. Есть ли какой-то красивый способ добратся до неё из модели? Делаю тащи-бросай по Using Drag and Drop with Item Views (http://doc.qt.nokia.com/4.7-snapshot/model-view-programming.html#using-drag-and-drop-with-item-views) Название: Re: [drag&drop] Куда бросили Отправлено: GreatSnake от Декабрь 21, 2011, 11:24 Нужно в модели, в реализации dropMimeData (переопределение QAbstractItemModel::dropMimeData) узнать точное положение куда бросили - ровно на итем, под него или над ним. Интересно, а зачем это вам знать, если об этом знает view?Название: Re: [drag&drop] Куда бросили Отправлено: Tonal от Декабрь 21, 2011, 11:38 Предполагаются разные действия.
Вид у меня QTreeView. Если бросили точно на ноду - происходит "слияние". Если выше или ниже - притащенное вставляется братом в соответствующее место. Ну да сам разобрался - параметры dropMimeData - int row, int column, QModelIndex index содержат полную информацию: Если бросили точно на ноду - в row и column -1 а index - нода. Если выше ноды - index - родитель ноды а row = нода.row. Если ниже ноды - index - родитель ноды а row = нода.row + 1. Ежели бросили мимо - index = root. |