QAbstractItemModel и Drag and Drop |
Здравствуйте, гость ( Вход | Регистрация )
QAbstractItemModel и Drag and Drop |
poluna |
23.12.2015, 14:00
Сообщение
#1
|
Студент Группа: Участник Сообщений: 27 Регистрация: 5.10.2015 Пользователь №: 4458 Спасибо сказали: 1 раз(а) Репутация: 0 |
Привет всем.
Снова я к вам со своими проблемами. Есть два QTreeView, они используют модель производную от QAbstractItemModel. Проблема в том, что при перетаскивании item'а из одного дерева в другое, появляется разрешающая иконка только в том случае, если этот item навести непосредственно на другой item в дереве. Если item будет над самим QTreeView, то иконка будет запрещающей. Все сделано по документации: Использование Drag and Drop с представлениями элементов У обоих деревьев есть: В модели переопределены:
В чем может быть проблема ума не приложу! Должна быть возможность бросать item непосредственно в само окно QTreeView, без наведения на другой item. Сообщение отредактировал poluna - 23.12.2015, 14:09 |
|
|
lanz |
24.12.2015, 9:19
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Посмотрите исходники:
https://github.com/qtproject/qtbase/blob/de...mview.cpp#L1995 https://github.com/qtproject/qtbase/blob/de...emview_p.h#L308 В вашем случае rootIndex это невалидный индекс, а ваша модель не врозвращает для невалидных индексов никаких флагов:
Вам нужно возвращать правильные флаги для невалидного индекса (и обрабатывать дроп на невалидный индекс). Сообщение отредактировал lanz - 24.12.2015, 9:21 |
|
|
poluna |
25.12.2015, 15:03
Сообщение
#3
|
Студент Группа: Участник Сообщений: 27 Регистрация: 5.10.2015 Пользователь №: 4458 Спасибо сказали: 1 раз(а) Репутация: 0 |
Есть эти флаги, пришлось перейти на QStandardItemModel, там такой проблемы нет.
|
|
|
lanz |
25.12.2015, 15:33
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Цитата Есть эти флаги Чтото вы меня дурите:
Если индекс невалидный(root), код выше вернет None. Сообщение отредактировал lanz - 25.12.2015, 15:34 |
|
|
poluna |
28.12.2015, 10:15
Сообщение
#5
|
Студент Группа: Участник Сообщений: 27 Регистрация: 5.10.2015 Пользователь №: 4458 Спасибо сказали: 1 раз(а) Репутация: 0 |
Кажется я поняла, что нужно сделать, попробую.
|
|
|
Текстовая версия | Сейчас: 22.11.2024, 13:35 |