Russian Qt Forum

Qt => Model-View (MV) => Тема начата: maydyk от Октябрь 21, 2009, 15:15



Название: Упорядочить элементы в ListView
Отправлено: maydyk от Октябрь 21, 2009, 15:15
Привет! Требуется позволить пользователю упорядочивать элементы в ListView. Я написал свою модель с поддержкой Drag-n-Drop, но Drop для элементов из самого виджета не приходит (dropMimeData не вызывается). Установка, равно как и убирание свойств dragEnabled и dragDropOverwriteMode к желаемому результату не приводит.

Как можно решить проблему?


Название: Re: Упорядочить элементы в ListView
Отправлено: Авварон от Октябрь 21, 2009, 15:28
проверь
 listWidget->setDragEnabled(true);
 listWidget->setAcceptDrops(true); // это
 listWidget->setDropIndicatorShown(true);


Название: Re: Упорядочить элементы в ListView
Отправлено: maydyk от Октябрь 23, 2009, 10:35
проверь
 listWidget->setAcceptDrops(true); // это

Увы, не помогло. dropMimeData() для модели всё равно не вызывается. Мне пришлось вводить "свой" mime-тип. Но возникла другая проблема, как изменить допустимые операции Drag-n-Drop при перетаскивании? Мне нужно исключить возможность перетаскивания между виджетами одного типа в разных процессах. Поскольку они возвращают одинаковый набор mime-типов операция перетаскивания завершается с флагом MoveAction даже если dropMimeData вернут false.


Название: Re: Упорядочить элементы в ListView
Отправлено: Danila_Bagrofff от Октябрь 29, 2009, 10:03
viewport()->installEventFilter(this);

Это выполняешь?