Эффективное управление эскизами изображений для Python?

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

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
0
2 539
3

Ответы 3

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

Если вам нравится PIL, попробуйте Подушка

guival 02.08.2017 14:17

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

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

Другие вопросы по теме