На ваш вопрос есть два дополнительных ответа, по крайней мере, с которыми я играл:
- Если вы хотите настроить анимацию непрозрачности окна верхнего уровня QWidget, вы можете использовать QPropertyAnimationот 0 до 1 в значении "windowOpacity".Возможно, вы захотите проверить точный синтаксис, поскольку я использую PyQt.
- Если вы хотите анимировать непрозрачность кнопки или текстовой метки, это свойство не будет работать, и вам нужно использовать QGraphicsWidgets.Они наследуют QGraphicsItem и поэтому имеют
opacity
.К сожалению, это означает использование прокси-виджетов QGrapgicsProxyWidget для синхронизации обычных виджетов с их аналогами графических виджетов, поскольку QGraphicsWidget не наследует QWidget.Чтобы узнать больше, посмотрите Примеры инфраструктуры анимации , в частности конечный автомат для использования виджетов прокси.
Для windowOpacity
анимаций:
QPropertyAnimation animate = new QPropertyAnimation(this, "windowOpacity", this);
animate.setDuration(100); animate.setStartValue(1); animate.setEndValue(0);
animate.start();
Это будет работать только в системах, поддерживающих какое-либо композитное расширение.
Надеюсь, это поможет!