完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
现在卡塔尔世界杯正进入高潮,我也来蹭个热点,使用Qt展示一下世界杯吉祥物“饺子皮”的动画。Qt是完整的跨平台软件开发平台,实现了一套代码可以在所有操作系统、平台和屏幕类型上部署,从台式机、嵌入式系统到可穿戴设备、移动设备。有很多著名的软件都是基于Qt开发的,如腾讯会议PC版、Wireshark、VirtualBox等。本文以飞凌嵌入式的OK3568开发板为例介绍Qt的动画展示能力。有关Qt开发环境的安装请参考:https://bbs.elecfans.com/jishu_2319965_1_1.html。 一、 使用QMovie类显示动画GIF QMovie类用于显示没有声音的简单动画。在实际运用中,经常用来显示GIF格式的动画。通过将文件名称或QIODevice指针传递给QMovie的构造函数即可创建QMovie对象。 调用start()方法来开始动画展示。此后QMovie将进入运行状态,并发出started()和stateChanged()信号。当动画播放完成时,QMovie会发出finished()信号。如果在回放过程中出现任何错误(即图像文件损坏),QMovie将发出error()信号。 可以通过调用setSpeed()来控制动画播放的速度,它以原始速度的百分比作为参数。通过调用setPaused(true)来暂停电影。如果调用setPaused(false), QMovie将重新进入运行状态并再次开始动画。如果要停止电影,调用stop(),否则电影会一直播放。 使用QLabel的setMovie()显示GIF动画,注意根据GIF动画的大小设置QLabel的大小,确保动画完整显示。 动画GIF是在一个GIF文件中保存多帧图片,显示的时候让多帧图片按一定规律快速、连续播放运动的画面。在网上有很多有趣的动画GIF文件。我们是在下面的网站上找到所需要的世界杯吉祥物拉伊卜(La’eeb)的动画GIF文件:https://tenor.com/zh-CN/view/%D9%84%D8%B9%D9%91%D9%8A%D8%A8-laeeb-gif-25275526。这个网站上还有很多有趣的动画。 从网上下载的动画GIF的背景色有的时候和整个程序的风格不一致,此时可以使用在线工具将其背景去除变成透明的GIF文件:https://onlinegiftools.com/create-transparent-gif。 显示动画的Qt代码如下:
二、 使用QPixmap类显示背景图片 Qt 提供了多个用于处理图像数据的类,其中QPixmap 是为在屏幕上显示图像而设计和优化的。我们用QPixmap 来显示作为背景的国旗。 使用如下的语句就可以实现图片加载,其中lblflag是我们建立的一个专门用来显示背景的QLabel对象,它在用于显示动画的label的下面。
为了让背景能够随着窗体的大小自动变化,我们重写了paintEvent事件。
三、 使用QMediaPlayer类播放背景音乐 QMediaPlayer是Qt提供的一个跨平台媒体播放器类。它没有自己解码库,而是对平台相关的播放器框架做了封装,提供了平台无关的API。在Windows下时,底层基于微软的DirectShow框架实现。在Linux下时,底层基于GStreamer框架实现。 下面的代码实现了播放此次世界杯球迷主题曲。
四、 资源文件的使用 Qt 资源系统是一个跨平台的资源机制,将程序运行时所需要的资源以二进制的形式存储于可执行文件内部。如下图所示,我们可以把前面提到的动画GIF、背景图和MP3文件都放置在资源文件中,就不用担心丢失这些文件了,只需要拷贝一个可执行文件到开发板就可以实现程序的正常显示。
|
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【飞凌嵌入式OK3588J-C开发板体验】OK3588J-C开发板开箱、系统烧写及环境测试
185 浏览 0 评论
【飞凌嵌入式OK3588J-C开发板体验】OK3588J-C开发板开箱评测
3586 浏览 1 评论
[技术] 【飞凌嵌入式OK3576-C开发板体验】llama2.c部署
7423 浏览 0 评论
7884 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】ssh连接与文件传输
7813 浏览 0 评论
6831浏览 2评论
11244浏览 1评论
5326浏览 1评论
85733浏览 1评论
687浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 22:47 , Processed in 0.698261 second(s), Total 59, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号