我需要一些帮助来为ObjectListView否定这个过滤器。
def addFilter(self, text):
# OLV.Filter.Predicate()
meter_flt = OLV.Filter.TextSearch(self, text=text)
self.SetFilter(meter_flt)
这很好用,但如果我尝试过滤像“鸡”那么它只会显示鸡。我希望它能被颠倒,所以如果我打字鸡肉,应该展示除鸡肉之外的所有东西。
感谢您的帮助!
答案 0 :(得分:1)
您可以使用Filter.Predicate
Filter.Predicate(booleanCallable)仅显示模型对象 给定的callable返回true。可调用者必须接受a 单个参数,是要考虑的模型对象。
以下是用于处理要从项目列表中排除的多个文本的代码段。
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