2008-10-18 6 views
3

Quel est le meilleur choix pour une application GUI Python pour afficher un grand nombre de vignettes, par ex. 10000 ou plus? Pour des raisons de performances, ce contrôle de vignettes doit prendre en charge les éléments virtuels, c'est-à-dire demander l'application pour ces vignettes uniquement qui sont actuellement visibles par l'utilisateur.Contrôle d'image miniature efficace pour Python?

Répondre

1

Si vous deviez écrire votre propre document, j'ai eu de bons résultats en utilisant la bibliothèque d'imagerie Python pour créer des miniatures dans le passé. http://www.pythonware.com/products/pil/

+1

Si vous êtes satisfait de PIL, consultez [Pillow] (https://python-pillow.org/) – guival

2

En wxPython vous pouvez utiliser wxGrid pour cela comme il prend en charge le mode virtuel et équarrisseurs cellule personnalisée.

This est l'interface minimale que vous devez mettre en œuvre un "fournisseur de données" 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 est l'interface minimale que vous devez mettre en œuvre pour une CellRenderer wxGrid:

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

Vous pouvez trouver un exemple de travail qui utilise ces classes dans wxPython docs and demos, il s'appelle Grid_MegaExample.

1

Juste pour être complet: il y a un thumbnailCtrl écrit dans/pour wxPython, ce qui pourrait être un bon point de départ.

Questions connexes