Эффективное управление миниатюрами изображений для Python? - PullRequest
3 голосов
/ 18 октября 2008

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

Ответы [ 3 ]

2 голосов
/ 18 октября 2008

В 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.

1 голос
/ 18 января 2009

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

1 голос
/ 18 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...