0

Мне нужна помощь с отрицанием этого фильтра для ObjectListView.python ObjectListView отрицательный фильтр

def addFilter(self, text): 
    # OLV.Filter.Predicate() 
    meter_flt = OLV.Filter.TextSearch(self, text=text) 
    self.SetFilter(meter_flt) 

Это прекрасно работает, но если я попытаюсь фильтровать, как «курица», тогда это будут только куриные куры. Я хочу, чтобы это было отменено, поэтому, если я набираю курицу, все, кроме курицы, должно отображаться.

Благодарим за помощь!

ответ

0

Вы можете использовать Filter.Predicate

Filter.Predicate (booleanCallable) Показать только объекты модели для которых данный Вызываемые возвращает значение ИСТИНА. Вызываемый должен принять единственный параметр , который является рассматриваемым объектом модели.

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

def __init__(self): 
    self.text_list = [] # list of text to be excluded 
    self.SetFilter(Filter.Predicate(self.filterMethod)) 

def addFilter(self, text): 
    self.text_list.append(text) 
    self.RepopulateList() # so that our filter_method is applied again 

def filterMethod(self,obj): 
    for text in self.text_list: 
     if {YOUR EXCLUSION LOGIC HERE}: 
      return False 
    return True 
Смежные вопросы