Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: python 3 + pySide + QSortFilterProxyModel() изиенение даннах.  (Прочитано 665 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jonik908

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Может кто то сталкивался.
задача:
Из SQL базы данных при помощи QSqlTableModel() подтягиваю таблицу.
На следующем этапе Фильтрую данные по содержанию второй колонки при помощи. QSortFilterProxyModel()На выходе получаю нужный результат.
Проблема:
На следующем этапе мне нужно изменить все отфильтрованные значения той же второй колонки на другое значение.

кусок кода программы:
def update_list(): тут пытаюсь заменить все значения "значение_1" на "значение_2" во второй колонке
    i = 0 #счетцик
    while i < model_list.rowCount():
      model_list.setData(model_list.index(i, 2), 'значение_2') в этом моменте происходит магия. см. ниже
      print ('счетчик ',i)
      i = i+1
    print ('количество строк',model_list.rowCount())
    model.select()
    print('Обновление')



  model_list = QSortFilterProxyModel()
  model_list.setSourceModel(model)
  model_list.setFilterCaseSensitivity(Qt.CaseInsensitive)
  model_list.setFilterKeyColumn(2)
  model_list.setFilterFixedString('значение_1')
  update_list()


На выходе получается какая то ерись.
Меняются не все значения, а только половина в произвольном порядке.

Что я делаю не так? Может есть другой способ поменять значения в QSortFilterProxyModel() одним разом?

P. S. код может содержать неточности поскольку я не первый раз пытаюсь его заставить работать.


Заранее Спасибо!

Пользователь решил продолжить мысль 12 Октября 2015, 18:36:05:
Проблема оказалась в динамической фильтрации  QSortFilterProxyModel()

Для Решения проблемы нужно отключить динамическую фильтрацию Модели посредника.

model_list.setDynamicSortFilter(False)
« Последнее редактирование: 12 Октября 2015, 18:36:05 от jonik908 »

 

Страница сгенерирована за 0.019 секунд. Запросов: 22.