マウスが親ウィジェットの上に置かれたときにフレームを表示/非表示にする小さなアニメーションがあります (「MyWidget」の下のコード スニペット)。
アニメーションは、フレームの maximumWidth プロパティを変更するだけで、フレームが「スライドイン効果」として見えるようになります。(フレーム自体はグリッド レイアウトで配置されます。)
私の質問は、アニメーションを遅らせて開始する方法ですか? 例: マウスの leaveEvent の 500 ミリ秒後に開始するため、スライド アウト効果が遅延し、すぐには開始されませんでした。
void MyWidget::enterEvent( QEvent * event )
{
//slide-in effect
QPropertyAnimation *animation = new QPropertyAnimation(ui.frame_buttons, "maximumWidth");
animation->setDuration(1000);
animation->setStartValue(ui.frame_buttons->maximumWidth());
animation->setEndValue(100);
animation->setEasingCurve(QEasingCurve::InOutQuad);
animation->start();
}
void MyWidget::leaveEvent( QEvent * event )
{
//slide-out effect
QPropertyAnimation *animation = new QPropertyAnimation(ui.frame_buttons, "maximumWidth");
animation->setDuration(1000);
animation->setStartValue( ui.frame_buttons->maximumWidth() );
animation->setEndValue(0);
animation->setEasingCurve(QEasingCurve::InOutQuad);
//delay start() for a small amount of time
animation->start();
}