2008-10-18 4 views
3

Что является лучшим выбором для приложения Python GUI для отображения большого количества миниатюр, например. 10000 или более? По соображениям производительности такое управление эскизами должно поддерживать виртуальные элементы, то есть запрашивать приложение только для этих эскизов, которые в настоящее время видны пользователю.Эффективное управление Thumbnail изображениями для Python?

ответ

1

Если вам приходилось прибегать к написанию собственных, у меня были хорошие результаты, используя библиотеку изображений Python для создания эскизов в прошлом. http://www.pythonware.com/products/pil/

+1

Если вы довольны PIL, то проверьте [Подушка] (https://python-pillow.org/) – guival 2017-08-02 11:17:46

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

Только для полноты: есть thumbnailCtrl, написанный в/для wxPython, что может быть хорошей отправной точкой.

Смежные вопросы