Python的高效图像缩略图控件?

时间:2008-10-18 13:36:15

标签: python image wxpython pyqt thumbnails

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

3 个答案:

答案 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 /,这可能是一个很好的起点。