Me temo que lo tendrás que implementar por ti mismo.
Código Python:
Ver original#coding: cp1252
import wx
class MyFrame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
panel = MyPanel(self, -1)
class MyPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
self.vbox = wx.BoxSizer(wx.VERTICAL)
self.text_ctrl = wx.TextCtrl(self)
self.list_ctrl = wx.ListCtrl(self, style=wx.LC_REPORT|wx.BORDER_SUNKEN)
self.btn = wx.Button(self, label="Search")
self.vbox.Add(self.text_ctrl, 0, wx.ALL|wx.EXPAND, 5)
self.vbox.Add(self.list_ctrl, 1, wx.ALL|wx.EXPAND, 5)
self.vbox.Add(self.btn, 0, wx.ALL|wx.CENTER, 5)
self.list_ctrl.InsertColumn(0, 'ID')
self.list_ctrl.InsertColumn(1, 'Name')
self.list_ctrl.InsertColumn(2, 'LastName')
self.items = [(0, 'Juan', 'Perez'),
(1, 'Jose', 'Hernandes'),
(2, 'Pedro', 'Gonzales')]
for i, name, lastname in self.items:
self.list_ctrl.InsertStringItem(i, str(i))
self.list_ctrl.SetStringItem(i, 1, name)
self.list_ctrl.SetStringItem(i, 2, lastname)
self.SetSizer(self.vbox)
self.btn.Bind(wx.EVT_BUTTON, self.onSearch)
def getColumns(self, row, columns):
return [self.list_ctrl.GetItem(row, j).GetText() for j in xrange(columns)]
def onSearch(self, event):
key = self.text_ctrl.GetValue()
rows = self.list_ctrl.GetItemCount()
columns = self.list_ctrl.GetColumnCount()
results = []
for i in xrange(rows):
cols = self.getColumns(i, columns)
if key in cols:
results.append(cols)
print results
if __name__ == "__main__":
app = wx.App(0)
frame = MyFrame(None, -1)
frame.Show()
app.MainLoop()
Aquí te dejo un ejemplo.
Pero si la búsqueda la puede hacer la base de datos entonces que la haga la base de datos.
Ahora si son muchos resultados solo muestra los primeros 200 o 20.