![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Анна |
![]()
Сообщение
#1
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Получаю от вьювера
Хотелось бы удалить выбранные элементы, но беда в том, что в list они стоят в том порядке, в каком выделялись во вьювере (задан режим MultySelection), что не позволяет удалять в цикле, т.к. удаление элемента с меньшим индексом делает другие индексы невалидными. Может, кто знает, как по-быстрому и красиво решить эту проблему? Или нужно после каждого удаления перезапрашивать ui.TableView->selectionModel(); ? |
|
|
![]() |
Анна |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy, проблема возникает в том случае, когда в sm хранятся индексы, например, в такой последовательности 9, 1 , 5 (пусть это будут номера рядов). 9 удаляется без проблем, а вот, когда удаляется 1, на месте 5-го уже находится элемент, который стоял на 6-месте. Ну и дальше понятно, чо происходит.
Или дело в сигналах beforeDelete() и deleted()? Пока сигнал deleted() не пришёл, никаких подвижек в модели не происходит и все индексы истинны? Вообще, у них что-то сказано про индексы, когда они истинны, а когда уже нет, но я это место как-то смутно поняла. Сообщение отредактировал Анна - 28.7.2010, 8:28 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 17.7.2025, 9:09 |