Qt 控件渐变隐藏消失
来源:互联网 发布:意识光谱 知乎 编辑:程序博客网 时间:2024/05/01 17:37
前言
在 Qt 开发中,经常会设置某些控件透明的透明度,比如设置QLabel字体渐变隐藏,设置某个按钮渐变消失等等,这在消息提示框中会常用到,显示一定时间后让控件有一个动画逐渐消失的过程,其实原理很简单,就是设置控件的透明度,直到透明度为0后再将控件设置为隐藏即可。动画的过程可以用两种方式来实现,第一是通过定时器,不断的设置控件的透明度,第二是通过QPropertyAnimation来实现,当然,后者会更简单。那么该如何设置控件透明度呢,这里需要用到QGraphicsOpacityEffect类。
正文
首先来看看效果图
当然,还可以将 QLabel 换成其他控件,比如 QPushButton等等。
来看源码:
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); m_pGraphicsOpacityEffect = new QGraphicsOpacityEffect(ui->label); m_pGraphicsOpacityEffect->setOpacity(1); ui->label->setGraphicsEffect(m_pGraphicsOpacityEffect); m_pNameAnimation = new QPropertyAnimation(m_pGraphicsOpacityEffect,"opacity",this); m_pNameAnimation->setEasingCurve(QEasingCurve::Linear); m_pNameAnimation->setDuration(2500);}Widget::~Widget(){ delete ui; delete m_pGraphicsOpacityEffect; delete m_pNameAnimation;}void Widget::on_pushButton_clicked(){ m_pNameAnimation->setStartValue(1); m_pNameAnimation->setEndValue(0); m_pNameAnimation->start(QAbstractAnimation::KeepWhenStopped);}
代码很简单,就是QGraphicsOpacityEffect + QPropertyAnimation来实现想要的效果。
以上是设置控件的透明度,如果想要设置窗口透明度,需要用到 QWidget 的函数setWindowOpacity来实现,原理和上面一样,也可以通过QPropertyAnimation来实现动画效果。这里就不再讲述。
做了一个简单的 demo,在这里下载
阅读全文
0 0
- Qt 控件渐变隐藏消失
- 自定义文本横向渐变消失的控件
- 控件渐变式显示和消失动画,AlphaAnimation
- js渐变显示渐变消失
- ListView的head消失页面导航栏的渐变出现和隐藏
- QT 渐变
- Qt控件显示,Windows判断隐藏
- Qt渐变之线性渐变
- 隐藏文件消失
- 两侧广告渐变出现渐变隐藏
- QT学习 渐变填充
- QT 渐变填充
- qt渐变效果
- Qt: 渐变填充
- qt之锥形渐变
- Qt 渐变色绘画
- QT渐变色
- Qt 渐变色Gradient
- Kafka 简析
- BZOJ1455 罗马游戏 【左偏树】
- Tomcat修改端口号
- Spring Cloud 的 Hystrix 为Feign禁用Hystrix
- 【洛谷】P1540 机器翻译
- Qt 控件渐变隐藏消失
- hadoop小知识2-虚拟机和主机间实现复制和粘贴
- 索引原理、类型及优化
- pm2--node.js服务管理工具使用说明
- 1016:委派任务
- Leetcode292. 分治法解决Nim Game
- 文章标题
- c++ template使用
- Hadoop的DateNode在NameNode format之后不能启动问题