repo: 添加 BaseWidgetOpacity 基础类来实现继承者的淡出动画来代替主窗口的实现

BaseWidgetOpacity 是一个提供了淡出/淡入动画的基础类

1. closeEvent 窗口关闭时进行淡出动画
    此前在 MainWindow 中实现的淡出动画将由 BaseWidgetOpacity 来实现。

    此前 MainWindow 原有的 DBlurEffectWidget 父类将移交至 BaseWidgetOpacity 继承。

注意:
    如果 MainWindow 在未来重写 closeEvent 事件时将可能丢失 BaseWidgetOpacity 中的淡出效果
This commit is contained in:
2022-12-19 02:47:38 +08:00
parent adf9032897
commit c9d0c8b751
7 changed files with 78 additions and 41 deletions

View File

@@ -25,7 +25,7 @@ void WidgetAnimation::widgetShake(QWidget *pWidget, int nRange)
pAnimation->start(QAbstractAnimation::DeleteWhenStopped);
}
void WidgetAnimation::widgetOpacity(QWidget *pWidget, bool isAppear)
QPropertyAnimation* WidgetAnimation::createWidgetOpacity(QWidget *pWidget, bool isAppear)
{
QPropertyAnimation *animation = new QPropertyAnimation(pWidget, "windowOpacity", pWidget);
//设置动画效果
@@ -42,6 +42,11 @@ void WidgetAnimation::widgetOpacity(QWidget *pWidget, bool isAppear)
animation->setKeyValueAt(0, 1);
animation->setKeyValueAt(1, 0);
}
// 开始动画
animation->start();
return animation;
}
void WidgetAnimation::widgetOpacity(QWidget *pWidget, bool isAppear)
{
// 开始动画
createWidgetOpacity(pWidget, isAppear)->start();
}