Название: Перетасовка строк в таблице Отправлено: Igors от Июнь 17, 2015, 07:41 Добрый день
Есть QTableWidget, режим выбора = строка. Пользователь хочет переставлять строки в таблице с помощью DnD. Никаких действий вне таблицы не планируется. Проблемы 1) Не видно как добиться этого просто опциями. По смыслу подходит InternalMove, но выходит он именно "move", т.е. затирает ячейки назначения и оставляет пустыми источники. Наверное я чего-то не понял, зачем сделано так неразумно/неудобно (совсем не в стиле Qt) ??? 2) Имедж драга - тупая копия выбранных, даже без альфы. Получается здоровая бандура за которой не видно куда вставлять Решать это велосипедом или как? Спасибо Название: Re: Перетасовка строк в таблице Отправлено: Old от Июнь 17, 2015, 07:53 http://stackoverflow.com/questions/26227885/drag-and-drop-rows-within-qtablewidget
Название: Re: Перетасовка строк в таблице Отправлено: Igors от Июнь 18, 2015, 14:47 Ну вот, всякий раз когда хочу отдохнуть (пожрать готовых классов) - ничего не выходит :'(
Ладно, в аттаче велосипед, пинаем, позорим что чего-то не читал и.т.п. - чтобы отменить начатый драг - мышу влево или вправо от таблицы, и отпустить - можно наезжать на вертикальный скроллер во время драга Ну остальное вроде интуитивно Название: Re: Перетасовка строк в таблице Отправлено: GreatSnake от Июль 03, 2015, 13:02 Судя по коду в QTableWidget::dropEvent() откровенные косяки, поэтому заявленный функционал и не работает.
Причём в последнем 5.5 никто их не исправил. В QTreeWidget это работает. Может нужно было задействовать его, а не изобретать велосипед? Название: Re: Перетасовка строк в таблице Отправлено: Авварон от Июль 03, 2015, 15:34 qstandarditemmodel ?
Название: Re: Перетасовка строк в таблице Отправлено: GreatSnake от Июль 03, 2015, 15:41 qstandarditemmodel ? Хм, не понял.Причём здесь вообще QStandardItemModel, коли речь про виджеты со своей встроенной моделью? Название: Re: Перетасовка строк в таблице Отправлено: Авварон от Июль 03, 2015, 19:41 В ней есть днд, судя по оверлоадам, АПИ похоже на АПИ виджетов, можно ей воспользоваться.
Виджеты какбы совсем кастрированные. Название: Re: Перетасовка строк в таблице Отправлено: Igors от Июль 04, 2015, 06:51 В QTreeWidget это работает. Соскочить на др базовый класс - это "workaround", а не нормальное, полноценное решение. Может нужно было задействовать его, а не изобретать велосипед? В QTreeWidget это работает. Там (QTreeWidget) "как-то вставляет", но так ужасно что тоже пришлось писать свое :) В ней есть днд, судя по оверлоадам, АПИ похоже на АПИ виджетов, можно ей воспользоваться. Не вижу ничего такого в QStandardItemModel Виджеты какбы совсем кастрированные. |