| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Выделение строки в QTreeView. |
| Автор: OlegIT 18.12.2012, 09:03 | ||||
Есть отображение QTreeView. Мышью выделяю строку, потом нажимаю кнопку в меню или по которой делаю swap(…) элементов. Всё работает, но при этом теряется выделение строки. Для того, что бы сохранить выделенную строку перед swap(…)сохраняю выделение
Но выделение строки остаётся на месте, хотя строка, которую я выделил, перемещается на нужное место. Как программно отследить позицию строки и правильно поставить выделение? |
| Автор: math64 18.12.2012, 09:58 |
| Индекс представляет из себя (номер строки, номер колонки, родительский индекс). После перестановки строк он становится невалидным или указывает на другую строку, поскольку эти данные поменялись. Нужно создавать новый индекс. |
| Автор: OlegIT 18.12.2012, 10:47 |
Простым изменением номера строки? |
| Автор: math64 18.12.2012, 11:49 | ||
Если родителя не перемещаешь:
|
| Автор: OlegIT 18.12.2012, 12:49 | ||
Сделал так
N зависит от swap, что и куда. Работает. Или лучше как Вы указали? |
| Автор: math64 18.12.2012, 13:56 |
| Раз работает - оставляйте так. Можно ещё использовать index.sibling(row, column); - соседний индекс с тем же родителем. |