3

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

4

3 回答 3

2

wxPython中,您可以为此使用wxGrid,因为它支持虚拟模式和自定义单元格渲染器。

是您必须为 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

是您必须为 wxGrid 单元格渲染器实现的最小接口:

class CellRenderer(wx.grid.PyGridCellRenderer):
    def Draw(self, grid, attr, dc, rect, row, col, isSelected):
        pass

您可以在wxPython 文档和演示中找到一个使用这些类的工作示例,它称为 Grid_MegaExample。

于 2008-10-18T16:48:04.777 回答
1

如果您不得不自己编写,我过去使用 Python 图像库创建缩略图取得了很好的效果。 http://www.pythonware.com/products/pil/

于 2008-10-18T15:40:32.417 回答
1

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

于 2009-01-18T14:10:15.473 回答