Используйте QItemDelegate для отображения миниатюр изображений
-
09-06-2019 - |
Вопрос
Каков наилучший способ использования QT4 QItemDelegate
показывать миниатюры изображений в представлении?
В частности, как вы можете предотвратить блокировку делегата элемента при генерации pixmaps
из очень больших файлов изображений (> 500 МБ)?
Кто-нибудь может дать ссылку на какой-нибудь пример кода, который позволяет достичь этого?С другой стороны, возможно, это не то место, где нужно искать код, специфичный для Qt.
Решение
Вы делаете это неправильно, если генерируете пиксельные изображения внутри любого из методов делегирования (paint, draw ...).
Попробуйте сгенерировать эскизы только один раз (в рабочем потоке или, возможно, даже не во время выполнения, если это возможно) и попросите делегата просто отобразить их для соответствующей роли.
Если вы делаете это во время выполнения, отображайте изображение по умолчанию до тех пор, пока не сгенерируете миниатюру (как это делают веб-браузеры с изображениями, которые еще не загружены).