Используйте finditem() только для одного столбца
У меня есть QTableWidget, заполненный QtableWidgetItems.
Мне нужна панель поиска, где я могу ввести и в качестве ответа таблица должна обновляться и отображать только те элементы, которые частично совпадают со строкой в поле поиска.
Я использую finditem для этого, но я хочу, чтобы для поиска использовался только один столбец. Как я могу это сделать?
1 ответ
Решение
Повторите таблицу вручную.
columnOfInterest = 1 # or whatever
valueOfInterest = "foo"
for rowIndex in range(self.myTable.rowCount()):
twItem = self.myTable.item(rowIndex, columnOfInterest)
if twItem.text() == valueOfInterest:
self.myTable.setRowHidden(rowIndex, False)
else:
self.myTable.setRowHidden(rowIndex, True)
Вам нужно будет внедрить лучшие критерии соответствия. Вы можете использовать строковые функции, такие как str.find
а также str.startswith
и другие, если вы хотите сделать это самостоятельно.