Woo*_*ker 5 python wxpython dynamic listctrl
你们中的任何人都有一个例子如何使以下成为可能:
我有一个listctrl显示> 600项.现在,我需要在这些项目中搜索用户输入的文本,并更新列表以仅显示包含此字符串的项目.
所以我们说这个列表包含"Hello","Hi"和"Morning".该列表显示所有三个项目.现在用户在textctrl中键入"h",listctrl缩小为"Hello"和"Hi".如果用户改为输入"o",则列表变为"Hello"和"Morning".
这可能吗?或者有没有其他方便的方法来查找listctrl中的项目?如果您确切地知道您搜索的内容,那么"在您键入时查找"的构建仅具有实际用途 - 在我的情况下,实际情况并非如此......
谢谢,Woodpicker
wxPython 演示内置了一个非常好的“预先输入”过滤器。查看Main.py 的源代码,他们以“手动方式”进行操作,循环并重建列表。他们使用的是树视图,但想法是合理的:
def OnSearch(self, event=None):
value = self.filter.GetValue()
if not value:
self.RecreateTree()
return
wx.BeginBusyCursor()
for category, items in _treeList:
self.searchItems[category] = []
for childItem in items:
if SearchDemo(childItem, value):
self.searchItems[category].append(childItem)
wx.EndBusyCursor()
self.RecreateTree()
Run Code Online (Sandbox Code Playgroud)