2008-10-18 70 views
3

什么是Python GUI应用程序显示大量缩略图的最佳选择,例如10000或更多?出于性能原因,这种缩略图控制必须支持虚拟项目,即仅针对用户当前可见的那些缩略图的请求应用。Python的高效图像缩略图控制?

回答

1

如果你不得不求助于自己写作,我已经使用Python Imaging Library创建了过去的缩略图。 http://www.pythonware.com/products/pil/

+1

如果您对PIL感到满意,请检查[Pillow](https://python-pillow.org/) – guival 2017-08-02 11:17:46

2

wxPython,因为它支持虚拟模式和自定义单元格渲染器可以使用​​这一点。

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

只是为了完整性:有一个thumbnailCtrl写在/ for wxPython,这可能是一个很好的起点。