【Qt】QLabel之动态阴影边框
效果如下:

实现思路参考了下面的文章:
Qt 之 QPropertyAnimation
该文章是自定义属性alpha,原理类似,代码如下:
//在头文件加入
Q_PROPERTY(int iBorderRadius READ iBorderRadius WRITE setBorderRadius) //自定义属性修改QLable的边框,以达到动画效果
private:
int iBorderRadius() const;
void setBorderRadius(const int radius); void initLableAnimation();
//cpp
int MainWindow::iBorderRadius() const
{
return m_borderRadius;
} void MainWindow::setBorderRadius(const int radius)
{
m_borderRadius = radius; //下面在自定义属性中修改BlurRadius
m_lblSnapImgshadowEffect->setBlurRadius(m_borderRadius); m_lblIdentityImgshadowEffect->setBlurRadius(m_borderRadius); // ui->lblIdentityImg->setGraphicsEffect(m_lblSnapImgshadowEffect);
} void MainWindow::initLableAnimation()
{
//设备图片周围的阴影
m_lblIdentityImgshadowEffect =new QGraphicsDropShadowEffect(this);
m_lblIdentityImgshadowEffect->setColor(Qt::darkGreen);//边框颜色
m_lblIdentityImgshadowEffect->setOffset(,);
m_lblIdentityImgshadowEffect->setBlurRadius(); //此处初始化为0,下面会由QPropertyAnimation 修改 自定义属性iBorderRadius m_lblSnapImgshadowEffect = new QGraphicsDropShadowEffect(this);
m_lblSnapImgshadowEffect->setColor(Qt::red); //边框颜色
m_lblSnapImgshadowEffect->setOffset(,);
m_lblSnapImgshadowEffect->setBlurRadius(); //此处初始化为0,下面会由QPropertyAnimation 修改 自定义属性iBorderRadius ui->lblIdentityImg->setGraphicsEffect(m_lblIdentityImgshadowEffect);
ui->lblSnapImg->setGraphicsEffect(m_lblSnapImgshadowEffect); //抓拍图片的边框动画特效
m_lblSnapImgAnimation = new QPropertyAnimation();
m_lblSnapImgAnimation->setTargetObject(this);
m_lblSnapImgAnimation->setDuration(); //完整周期2秒
m_lblSnapImgAnimation->setPropertyName("iBorderRadius");
//下面代码是由状态机自动完成
//0-0.5,完成iBorderRadius从1到30递增;
//0.5-1,完成iBorderRadius从30到1递减
m_lblSnapImgAnimation->setKeyValueAt(,);
m_lblSnapImgAnimation->setKeyValueAt(0.5,);
m_lblSnapImgAnimation->setKeyValueAt(,); m_lblSnapImgAnimation->setLoopCount(-); //身份证照片的边框动画特效
m_lblIdentityImgAnimation = new QPropertyAnimation();
m_lblIdentityImgAnimation->setTargetObject(this);
m_lblIdentityImgAnimation->setDuration();//完整周期2秒
m_lblIdentityImgAnimation->setPropertyName("iBorderRadius");
//下面代码是由状态机自动完成
//0-0.5,完成iBorderRadius从1到30递增;
//0.5-1,完成iBorderRadius从30到1递减
m_lblIdentityImgAnimation->setKeyValueAt(,);
m_lblIdentityImgAnimation->setKeyValueAt(0.5,);
m_lblIdentityImgAnimation->setKeyValueAt(,); m_lblIdentityImgAnimation->setLoopCount(-); connect(this, SIGNAL(StartLableAnimation()), m_lblSnapImgAnimation, SLOT(start())); connect(this, SIGNAL(StartLableAnimation()), m_lblIdentityImgAnimation, SLOT(start()));
}
只要触发信号,两个QLabel的动画效果就会启动。
emit StartLableAnimation();
代码:
链接: https://pan.baidu.com/s/1X5o4C283lA2tjcGmqS9Mgg 密码: ned3
【Qt】QLabel之动态阴影边框的更多相关文章
- Qt之阴影边框(转)
原文地址:http://blog.sina.com.cn/s/blog_a6fb6cc90101eoc7.html 阴影边框很常见,诸如360以及其他很多软件都有类似效果,了解CSS3的同学们应该都知 ...
- Qt 创建圆角、无边框、有阴影、可拖动的窗口 good
程序窗口的边框,标题栏等是系统管理的,Qt 不能对其进行定制,为了实现定制的边框.标题栏.关闭按钮等,需要把系统默认的边框.标题栏去掉,然后使用 Widget 来模拟它们.这里介绍使用 QSS + Q ...
- QT模态对话框用法(在UI文件中设置Widget背景图,这个图是一个带阴影边框的图片——酷)
QT弹出模态对话框做法: 1.新建UI文件时,一定要选择基类是QDialog的,我的选择是:Dialog without Buttons(),如下图: 2.然后在使用的时候: MyDialog dlg ...
- Qt之圆角阴影边框
Qt的主窗体要做出类似WIN7那种圆角阴影边框,这一直是美工的需求. 这里是有一些门道的,尤其是,这里藏着一个很大的秘密. 这个秘密是一个QT的至少横跨3个版本,存在了2年多的BUG... https ...
- Qt:无标题栏无边框程序的拖动和改变大小
From: http://blog.csdn.net/kfbyj/article/details/9284923 最近做项目遇到的问题,总结下. 有时候我们觉得系统的标题栏和按钮太丑太呆板,想做自己的 ...
- QT笔记之实现阴影窗口
方法一: 代码实现 在窗口构造函数中加入:setAttribute(Qt::WA_TranslucentBackground),保证不被绘制上的部分透明 重写void paintEvent(QPain ...
- QT自绘标题和边框
在QT中如果想要自绘标题和边框,一般步骤是: 1) 在创建窗口前设置Qt::FramelessWindowHint标志,设置该标志后会创建一个无标题.无边框的窗口. 2)在客户区域的顶部创建一个自绘标 ...
- 游戏里的动态阴影-ShadowMap实现原理
ShadowMap是比较流行的实时阴影实现方案,原理比较简单,但真正实现起来还是会遇到很多问题的,我这里主要记录下实现方式 先看效果 凹凸地形上也有阴影 实现原理 ShadowMap技术是从灯光空间用 ...
- IOS UIView圆角,阴影,边框,渐增光泽
圆角 sampleView.layer.cornerRadius = 2.5; // 圓角的弧度sampleView.layer.masksToBounds = YES; 阴影 sampleView. ...
随机推荐
- CSS3动画详解(图文教程)
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 本文主要内容: 过渡:transition 2D 转换 trans ...
- sqlio
http://www.cnblogs.com/Amaranthus/archive/2011/09/16/2178747.html Each line in the param.txt file lo ...
- Oracle EBS AP 应付核销到确定一行预付款
-- purpose: 应付标准发票核销预付款发票中的一行 -- 12.2.6 环境 -- author:jenrry create_date: 2017-06-08 declare l_error_ ...
- sql server中quotename()函数的用法(转载)
操作sql server尤其是写存储过程时,要用到各种各样的函数,今天就总结一个quotename()的用法.1.语法: quotename('character_string'[,'quote_ch ...
- 在IE中,JS方法名和input的name重名时,调用该方法无效
在IE中,JS方法名和input的name重名时,调用该方法无效.提示:网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1 ...
- 【JAVA】使用 jedis操作redis——连接、存储数据、切库等
本篇运用Java调用jedis包(jedis在线文档API ),做简单操作实例. 安装jedis 1. 2.9.0 jar 版本下载: jedis-2.9.0.jar 2. 新建项目,添加该驱动包 连 ...
- linux内核完全剖析——基于0.12内核-笔记(2)-统一编址和独立编址
IO是什么 ? IO(Input and Output)是输入输出接口.是CPU和其他外部设备(如串口.LCD.触摸屏.LED等)之间通信的接口.一般的,我们说的IO就是指CPU的各种内部或外部外设. ...
- NGUI Clip Animation (UI动画)
效果预览 视频:http://pan.baidu.com/s/1ntr3XSt 运行环境 Unity 4.5, NGUI3.5, iTween 场景搭建 创建一个UIPanel,UIPanel下再创建 ...
- Terminal Service 终端链接
2008 64位前有这项服务,之后就与远程管理合并了 如果要设置他的连接数可以去 桌面 --> 管理工具 --> 远程桌面服务 最大数设置成1个好了
- css选择器补充
前面文章总结了常用的8种选择器,今天再来补充5中选择器,其中一部分是css3中新加入的. 1.相邻选择器 E+F { sRules } 相邻选择符只会命中符合条件的相邻的兄弟元素. 2.兄弟选择器 E ...