Python GUI应用程序显示大量缩略图的最佳选择是什么,例如10000以上?出于性能原因,此类缩略图控件必须支持虚拟项目,即仅请求用户当前可见的那些缩略图的应用程序.
解决方法:
在wxPython中,您可以为此使用wxGrid,因为它支持虚拟模式和自定义单元格渲染器.
This是您必须为wxGrid“数据提供程序”实现的最小接口:
class GridData(wx.grid.PyGridTableBase):
def GetColLabelValue(self, col):
pass
def GetNumberRows(self):
pass
def GetNumberCols(self):
pass
def IsEmptyCell(self, row, col):
pass
def GetValue(self, row, col):
pass
This是您必须为wxGrid单元格渲染器实现的最小接口:
class CellRenderer(wx.grid.PyGridCellRenderer):
def Draw(self, grid, attr, dc, rect, row, col, isSelected):
pass
您可以在wxPython docs and demos中找到一个利用这些类的工作示例,称为Grid_MegaExample.