@jonikwm

Странное поведение Python + PySide. Как рекурсивно Поменять Данные в QSortFilterProxyModel()?

Всем привет! Помогите разобраться.
из model = QSqlTableModel() получаю таблицу с некоторым количеством полей.
Далее ставлю на нее фильтр:
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. код может содержать неточности поскольку я не первый раз пытаюсь его заставить работать.
  • Вопрос задан
  • 241 просмотр
Пригласить эксперта
Ответы на вопрос 1
kkmspb
@kkmspb
хобби C++, Qt, десктоп, микроконтроллеры STM32
У QSqlTableModel есть setFilter, можно её попробовать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы