wxpython ObjectListView否定过滤器



我需要一些帮助来否定ObjectListView的这个过滤器。

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

这个效果很好,但是如果我尝试过滤"鸡",那么它只显示鸡。我想把它反过来,所以如果我输入chicken,除了chicken之外的所有内容都应该显示出来。

谢谢你的帮助!

您可以使用Filter.Predicate

Filter.Predicate(booleanCallable)只显示模型对象给定的可调用对象返回true。可调用对象必须接受单个参数,即要考虑的模型对象。

下面是处理从项列表中排除的多个文本的代码片段。

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

相关内容

  • 没有找到相关文章

最新更新