Qt实现歌词播放流光跑马灯特效
效果图如下
实现原理
利用Qt的绘制函数,先绘制歌词文案,然后绘制歌词遮罩,歌词遮罩通过定时器计算时长,从而改变遮罩长度,达到效果。
核心代码
//设置歌词内容和启动定时器
void Lrc::startLrcMask(qint64 intervalTime, const QString& text)
{//更换文本内容setText(text);// 这里设置每隔30毫秒更新一次遮罩的宽度qreal count = intervalTime / 30;// 获取遮罩每次需要增加的宽度,这里的m_lrcWidth是部件的固定宽度m_lrcMaskWidthInterval = m_lrcWidth / count;m_lrcMaskWidth = 0;if (m_timer) {m_timer->start(30);}
}//定时器模块
void Lrc::sltTimerOut()
{m_lrcMaskWidth += m_lrcMaskWidthInterval;update();
}//绘制
void Lrc::paintEvent(QPaintEvent * event)
{QPainter painter(this);painter.setFont(m_font);// 先绘制渐变文字painter.setPen(QPen(m_textLinearGradient, 0));painter.drawText(0, 0, m_lrcWidth, 60, Qt::AlignLeft, text());// 最后绘制歌词遮罩painter.setPen(QPen(m_maskLinearGradient, 0));painter.drawText(0, 0, m_lrcMaskWidth, 60, Qt::AlignLeft, text());
}
源码传送门
Qt实现歌词播放流光跑马灯特效相关推荐
- jquery 立体走马灯_jQuery简单的文字跑马灯特效
插件描述:这是一款非常简单的jQuery文字跑马灯特效插件.该跑马灯特效使文本从右向左不停循环,当鼠标放到跑马灯上的文字时,跑马灯会暂停运动. 更新时间:2018/2/8 下午3:21:52 更新说明 ...
- js在html中加文字走马灯特效,jQuery简单的文字跑马灯特效
插件描述:这是一款非常简单的jQuery文字跑马灯特效插件.该跑马灯特效使文本从右向左不停循环,当鼠标放到跑马灯上的文字时,跑马灯会暂停运动. 更新时间:2018/2/8 下午3:21:52 更新说明 ...
- 原生JS实现图片跑马灯特效
今天给大家分享一个用原生JS实现的图片跑马灯特效,效果如下: 实现的代码如下,欢迎大家复制粘贴. <!DOCTYPE html> <html><head><m ...
- 网站顶部的跑马灯特效代码
跑马灯的方法很多,其中最简单的是采用一句Html代码来实现 放置说明 放在头部head里即可 代码 <style> #top-grrk{ background:url(https://ex ...
- STM8S自学笔记-003 GPIO输出:点亮LED灯 and 跑马灯特效
STM8S自学笔记-003 GPIO输出:点亮LED灯 and 跑马灯特效 点亮LED GPIO初始化函数:GPIO_Init() GPIO电平操作库函数:GPIO_WriteHigh().GPIO_ ...
- 7.纯 CSS 创作一个 3D 文字跑马灯特效
7.纯 CSS 创作一个 3D 文字跑马灯特效 原文地址:https://segmentfault.com/a/1190000014663038 感想:简单的从右到左动画 HTML代码: <di ...
- 只需一个DOM,纯CSS实现线性跑马灯特效
只需一个DOM,纯CSS实现跑马灯线性特效 引言 跑马灯效果图&Demo 跑马灯代码 样式分析解释 引言 之前看到一个效果,一条小细线,围绕着边框一直绕圈,不过它的实现方式使用了JavaScr ...
- CSS实现公告栏文字跑马灯特效(VUE组件)
效果图 VUE组件封装 <template><div class="marquee" :style="{ backgroundColor: bgColo ...
- php实现跑马灯闪亮,易达CMS实现跑马灯特效!
[br]1 各种跑马灯代码: [br]2 实现跑马灯的方法很多,其中最简单的是采用一句Html代码来实现,我们在需要出现跑马灯效果的地方插入"<marquee>滚动的文字< ...
最新文章
- 使用Keil语言的嵌入式C编程教程(上)
- 基于Java的RDMA高性能通信库(四):DaRPC
- android进程间对象传递,Android Fragment 间对象传递
- python文本解析_如何通过python进行文本解析?
- Linux declare命令、Linux tail 命令
- 文献阅读005【精读】
- 最简单的电脑上截长图的方法
- VS Code:4个中文乱码问题及解决方法
- 【金蝶】金蝶KIS专业版9.1清理用户名密码
- 获取某年某月的第一天是星期几
- 秒拍视频其实在你浏览器缓存里
- 自动遍历测试方法及常见技术
- React类组件的两种写法
- 审计学习-审计概述02(政府审计和注册会计师审计+职业责任和期望差距+审计报告和信息差距+审计五要素+三方关系人+责任方责任+审计报告预期使用者+鉴证对象+披露+财报编制基础)
- Windows下的很多程序都有十分漂亮的菜单
- 关于开机出现“安装程序正在为首次使用计算机做准备”的解决方案及微软OOBE与SYSPREP的实用技巧
- 让爱永不过期,三公仔给你“旧药换新”
- 微信开发从入门到精通教程大全 资料大全 java和php版本;教程文档、代码、视频 微信商城实例
- 蓝桥杯 锻造兵器 JAVA TreeMap的使用
- [Skr-Shop]通用抽奖工具之需求分析