list_report_virtual.py
来自「wxPython的基本示例程序」· Python 代码 · 共 67 行
PY
67 行
import wximport sys, glob, randomimport dataclass DataSource: """ A simple data source class that just uses our sample data items. A real data source class would manage fetching items from a database or similar. """ def GetColumnHeaders(self): return data.columns def GetCount(self): return len(data.rows) def GetItem(self, index): return data.rows[index] def UpdateCache(self, start, end): pass class VirtualListCtrl(wx.ListCtrl): """ A generic virtual listctrl that fetches data from a DataSource. """ def __init__(self, parent, dataSource): wx.ListCtrl.__init__(self, parent, style=wx.LC_REPORT|wx.LC_SINGLE_SEL|wx.LC_VIRTUAL) self.dataSource = dataSource self.Bind(wx.EVT_LIST_CACHE_HINT, self.DoCacheItems) self.SetItemCount(dataSource.GetCount()) columns = dataSource.GetColumnHeaders() for col, text in enumerate(columns): self.InsertColumn(col, text) def DoCacheItems(self, evt): self.dataSource.UpdateCache( evt.GetCacheFrom(), evt.GetCacheTo()) def OnGetItemText(self, item, col): data = self.dataSource.GetItem(item) return data[col] def OnGetItemAttr(self, item): return None def OnGetItemImage(self, item): return -1 class DemoFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, "Virtual wx.ListCtrl", size=(600,400)) self.list = VirtualListCtrl(self, DataSource())app = wx.PySimpleApp()frame = DemoFrame()frame.Show()app.MainLoop()
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?