Индикатор загрузки Qt по анимированному изображению (он же preloader) или альтернатива?

Я хочу отобразить анимированное изображение загрузчика в виде таблицы во время загрузки. На скриншоте ниже показано впечатление.

Я использовал анимированный GIF для этого, отображаемый setStyleSheet как центрированное фоновое изображение.

Изображение загрузчика

Я сталкиваюсь с двумя проблемами:

  1. GIF отображается, но не анимированный. Можно ли отобразить анимированный GIF в качестве фонового изображения (через таблицу стилей)? Замечание: В целом возможен анимированный GIF, как показано в Qt - Как показать GIF (анимированное) изображение в QGraphicsPixmapItem, но, похоже, нет анимированного gif с таблицами стилей Анимированная Gif-статика в QStyleSheet
  2. У меня проблемы с очисткой изображения после загрузки. Если я очистить таблицу стилей с setStyleSheet("") тогда это все еще отображается. Единственный прием, который работает для меня, это переопределить его как прозрачное изображение на 1 пиксель.

Есть ли решение этих проблем или даже лучший подход (оверлейный виджет? / Специализированный виджет Qt для этого)?

(Пример моего кода в Qt 5.4 / Win7)


Редактировать: /questions/30272230/vidzhet-indikatora-zagruzki-qt/30272232#30272232 показывает, как можно анимировать такой gif-файл, но я понятия не имею, использовать это в таком стиле наложения / фона.

1 ответ

Решение

Используйте QProgressIndicator вместо gif-анимации.

PS: там написано, что это Qt4, но он работает с Qt5.

QtWaitingSpinner также является элегантным решением.

Версия Python здесь.

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