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






Если вам приходилось писать свои собственные, у меня были хорошие результаты, используя Python Imaging Library для создания эскизов в прошлом. http://www.pythonware.com/products/pil/
В 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, который может быть хорошей отправной точкой.
Если вам нравится PIL, попробуйте Подушка