| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] На drag&drop меняем местами строки QTableView |
| Автор: NumLock 18.12.2008, 12:37 |
| Есть потомок QTableView. В нем реализован drag&drop. Т.е. есть методы начинающие "перетаскивание" и разрешающие "бросание". Сам он поддерживает бросание "из самого себя". Необходимо, чтобы строки перетаскивались вслед за указателем мыши, и вставлялись между той строкой куда её бросили, и соседней. Посоветуйте, пожалуйста, в какую сторону посмотреть. |
| Автор: SABROG 18.12.2008, 13:00 |
| Скорее всего придется воспользоваться делегатами. Перед началом операции перетаскивания надо будет "захватить" rect строки или несколько rect'ов с каждого итема в строке и сложить их в один прямоугольник (думаю можно будет глянуть исходники QAbstractItemView в месте где идет полное выделение строк синим цветом), сохранить изображение из этого rect'a в QPixmap и установить для QDrag. Отслеживать положение мышки над строками, чтобы выделять жирным верх или низ границы, чтобы было видно куда дропнется строка (или если хватит фантазии как-то сделать плавное раздвижение строк в пустое пространство с магнитизмом, т.е. чтобы новая строка при этом еще в нужный паз вставала). |
| Автор: NumLock 20.12.2008, 07:14 | ||||
Я не нашел способа рисовать на QTableView. Я пытался сделать так:
У меня в приложении ведется лог через стандартный QDebug. Вот в логе было написано следующее:
Со второй строчкой все понятно, а вот что означает первая. Подскажите, пожалуйста, чего я не понимаю. |
| Автор: NumLock 20.12.2008, 10:25 | ||
Нашел решение.
|