赞
踩
#include<QPropertyAnimation>
#include<QSequentialAnimationGroup>
#include<QParallelAnimationGroup>
#include<QGraphicsOpacityEffect>
//设置按钮为渐变状态
void MainWindow::setFlickering(QPushButton *pButton)
{
QGraphicsOpacityEffect *pGOF = new QGraphicsOpacityEffect(this);
pGOF->setOpacity(1);
pButton->setGraphicsEffect(pGOF);
QPropertyAnimation *pPA1 = new QPropertyAnimation(pGOF,"opacity");
pPA1->setDuration(1000);
pPA1->setStartValue(1);
pPA1->setEndValue(0);
pPA1->setEasingCurve(QEasingCurve::BezierSpline);
QPropertyAnimation *pPA2 = new QPropertyAnimation(pGOF,"opacity");
pPA2->setDuration(1000);
pPA2->setStartValue(0);
pPA2->setEndValue(1);
pPA2->setEasingCurve(QEasingCurve::BezierSpline);
QSequentialAnimationGroup *pSAG = new QSequentialAnimationGroup(this);
pSAG->addAnimation(pPA1);
pSAG->addAnimation(pPA2);
QParallelAnimationGroup *pPAG = new QParallelAnimationGroup(this);
pPAG->addAnimation(pSAG);
pPAG->setDirection(QAbstractAnimation::Forward);
pPAG->setLoopCount(-1);
pPAG->start();
}
//设置按钮停止渐变
void MainWindow::setFlickStop(QPushButton *pButton)
{
QGraphicsOpacityEffect *pGOF = new QGraphicsOpacityEffect(this);
pGOF->setOpacity(1);
pButton->setGraphicsEffect(pGOF);
QPropertyAnimation *pPA1 = new QPropertyAnimation(pGOF,"opacity");
pPA1->setDuration(1000);
pPA1->setStartValue(1);
pPA1->setEndValue(0);
pPA1->setEasingCurve(QEasingCurve::BezierSpline);
QPropertyAnimation *pPA2 = new QPropertyAnimation(pGOF,"opacity");
pPA2->setDuration(1000);
pPA2->setStartValue(0);
pPA2->setEndValue(1);
pPA2->setEasingCurve(QEasingCurve::BezierSpline);
QSequentialAnimationGroup *pSAG = new QSequentialAnimationGroup(this);
pSAG->addAnimation(pPA1);
pSAG->addAnimation(pPA2);
QParallelAnimationGroup *pPAG = new QParallelAnimationGroup(this);
pPAG->addAnimation(pSAG);
pPAG->setDirection(QAbstractAnimation::Forward);
pPAG->setLoopCount(-1);
pPAG->stop();
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。