你们中的任何人都可以举例说明如何使以下内容成为可能吗:
我有一个显示 > 600 个项目的 listctrl。现在我需要在这些项目中搜索用户输入的文本并更新列表以仅显示包含该字符串的项目。
假设列表包含“Hello”、“Hi”和“Morning”。该列表显示所有三个项目。现在用户在 textctrl 中键入“h”,listctrl 缩小为“Hello”和“Hi”。如果用户改为键入“o”,列表将变为“Hello”和“Morning”。
这可能吗?或者有没有其他方便的方法可以在 listctrl 中查找项目? “键入时查找”中的构建只有在您确切知道要搜索的内容时才有实际用处 - 而在我的情况下,情况并非如此......
谢谢,啄木鸟
最佳答案
wxPython 演示内置了一个非常好的“预先输入”过滤器。看着 source code to Main.py他们以“手动方式”进行操作,循环并重建列表。他们使用的是 TreeView ,但想法很合理:
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()
关于python - wxPython - 根据对 textctrl 的输入动态更新 listctrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7059153/