Может кто то сталкивался.
задача:
Из 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)