qt里实现动画一般是用QPropertyAnimation,也支持有透明的动画效果,即属性为opacity。该属性是QWindow类及其派生类才有的,QWidget没有,QWidget及其派生类就用不了,故只能使用其他方法来实现了

我们这里通过QGraphicsOpacityEffect来设置透明度,使用定时器来控制。

效果如下图:

下面上代码

头文件:

#ifndef RECORDBTN_H
#define RECORDBTN_H#include <QPushButton>class QGraphicsOpacityEffect;
class QTimer;class RecordBtn : public QPushButton
{Q_OBJECT
public:explicit RecordBtn(QWidget *parent = 0);void startAnimation();void stopAnimation();bool isActive() const;signals:void sigTimeout();private:QGraphicsOpacityEffect *m_pOpacityEffect = Q_NULLPTR;QTimer *m_pTimer = Q_NULLPTR;bool m_bStatus = false;float m_opacityVal = 1.0;
};#endif // RECORDBTN_H

cpp文件:

#include "recordbtn.h"#include <QGraphicsOpacityEffect>
#include <QTimer>RecordBtn::RecordBtn(QWidget *parent):QPushButton(parent)
{m_pOpacityEffect = new QGraphicsOpacityEffect(this);this->setGraphicsEffect(m_pOpacityEffect);m_pTimer = new QTimer(this);//设置QTimer的高精度m_pTimer->setTimerType(Qt::PreciseTimer);connect(m_pTimer, &QTimer::timeout, this, [=](){emit sigTimeout();m_pOpacityEffect->setOpacity(m_opacityVal);if(m_bStatus){m_opacityVal -= 0.1;}else{m_opacityVal += 0.1;}if(m_opacityVal > 0.9){m_bStatus = true;}else if(m_opacityVal < 0.1){m_bStatus = false;}});
}void RecordBtn::startAnimation()
{m_pTimer->start(50);
}void RecordBtn::stopAnimation()
{m_pTimer->stop();m_pOpacityEffect->setOpacity(1.0);
}bool RecordBtn::isActive() const
{return m_pTimer->isActive();
}

【Qt】实现按钮透明的动画效果相关推荐

  1. html点击波,Material Design风格按钮点击波动画效果

    这是一款Material Design风格按钮点击波动画效果.该按钮设计在用户点击按钮时,按钮上会产生各种流光动画效果,非常炫酷. 使用方法 在页面中引入style.css文件. HTML结构 该Ma ...

  2. 如何在html中加入动画效果,纯css如何实现按钮的水滴动画效果?

    纯css如何实现按钮的水滴动画效果?下面本篇文章就来给大家介绍一下使用纯css实现Material Design中按钮的水滴动画效果.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. ...

  3. android 按钮点击动画效果_如何用纯css打造类materialUI的按钮点击动画并封装成react组件...

    作为一个前端框架的重度使用者,在技术选型上也会非常注意其生态和完整性.笔者先后开发过基于vue,react,angular等框架的项目,碧如vue生态的elementUI, ant-design-vu ...

  4. 微信小程序 漂亮的按钮 多颜色+动画效果,超好看的button 样式

    推荐一款超好看的微信小程序按钮样式,多种颜色, 动画,立体感: 其他颜色+动画效果: /** button **/ .button1 { position: relative; display: in ...

  5. html如何给按钮加动态效果,css3 实现按钮点击动画效果(加工)

    项目中的网页需要给按钮添加动画效果,只需要如下css文件即可: /** * 按钮的点击动画效果,2018年1月12日09:36:48 **/ input.btn { display: inline-b ...

  6. CSS3圆角-透明操作-动画效果

    CSS3 一.CSS3圆角 二.rgba(新的颜色值表示法) 三.transition动画 四.transform变换 五.animation动画 1.解释 2.风车旋转的实例 3.登录中的loadi ...

  7. Flutter SliverAnimatedOpacity 透明渐变动画效果

    志在巅峰的攀登者,不会陶醉在沿途的某个脚印之中,在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的 ...

  8. android 按钮图片切换动画效果,Button按钮点击图片切换效果

    Button按钮图片切换效果设置. 通常在工程中用到图片按钮点击事件,大多都用ImageButton.在这里我们用 Button的点击事件,在图片的切换过程中不再通过setBackgroundReso ...

  9. QT qtablewidget按钮控制翻页效果

    主要借鉴别人的思路 pro #------------------------------------------------

最新文章

  1. DRBD数据同步部署-centos7
  2. 机器学习案例学习【每周一例】之 Titanic: Machine Learning from Disaster
  3. 软件测试周记录之jmeter
  4. “压倒性快感”是怎么来的?氪金抽卡,是利用认知BUG的最强发明
  5. Java:以CSV格式流式传输JDBC结果集
  6. 德力西双电源自动转换开关说明书_今日优品:南开区FLQ3-25双电源自动转换开关全国服务-老友网...
  7. 庖丁解牛之spring源码系列一
  8. 交通灯c语言单片机程序,基于51单片机的一个简单交通灯程序
  9. Windows命令:tracert
  10. 1到10加法创新图片-走迷宫_“小火锅+关东煮”,呷哺呷哺又创新模式!客单提到110元!...
  11. tlwr842n服务器无响应,TL-WR842n无线路由器掉线解决方法汇总
  12. 【两台电脑之间实现鼠标键盘共享】
  13. 【MATLAB小游戏】养鱼
  14. 【引路帖】【MATLAB】【求解最优化问题】
  15. 数学建模-Lingo学习
  16. Mybatis自定义轻量级分页组件(易集成,易拓展)
  17. 中文关键词提取tfidf算法改进bsaeline
  18. Redis主从配置详细流程
  19. 总谐波失真80_总谐波失真
  20. linux i5 i7差别,电脑处理器i5和i7的区别,如何选择?

热门文章

  1. MySQL数据库,分组函数篇
  2. 文献翻译工具:saladict+quicker的配置
  3. 【图像翻译GAN】我家那只蠢猫更像狗子还是更像虎哥?让AI模型来看看
  4. ubuntu关闭AMD独显
  5. html5绘制缩放雨伞,canvas纯绘制雨伞、飞机、五角星、桃心,无逻辑
  6. 朴素贝叶斯分类器(Naive Bayesian Classifier)
  7. input 在iOS颜色变浅
  8. 怀化驾考系统的敏感程度
  9. 三星android分屏视图怎么关闭,三星手机当前屏幕不支持分屏视图怎么办?
  10. android 分屏rom,原生ROM都有分屏 为啥MIUI做了那么久?