Python GUI应用程序显示大量缩略图的最佳选择是什么,例如10000以上?出于性能原因,这种缩略图控件必须支持虚拟项目,即仅请求那些当前对用户可见的缩略图的应用程序。
答案 0 :(得分:2)
在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。
答案 1 :(得分:1)
如果你不得不求助于自己编写,我使用Python Imaging Library在过去创建缩略图方面取得了很好的效果。 http://www.pythonware.com/products/pil/
答案 2 :(得分:1)
为了完整性:wxPython中有一个thumbnailCtrl /,这可能是一个很好的起点。