版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第基于Qt实现简易GIF播放器的示例代码目录一、项目介绍二、项目基本配置三、UI界面设计四、主程序实现4.1mainwindow.h头文件4.2mainwindow.cpp源文件五、效果演示
一、项目介绍
利用Qt设计一个简易GIF播放器,可以播放GIF动画。其基本功能有载入文件、播放、暂停、停止、快进和快退。
二、项目基本配置
新建一个Qt案例,项目名称为GIFTest,基类选择QMainWindow,创建UI界面复选框的选中状态,完成项目创建。
三、UI界面设计
UI界面如下:
界面中创建了8个控件,其名称和类型如下表所示:
序号名称类型属性①movieLabelQLabeltext:Nomovieloaded;
alignment:AlignCenter;
SizePolicy:Expanding;②frameLabelQLabeltext:Currentframe;③HorizontalSliderQSlidertickInterval:1④openQToolButton/⑤backQToolButton/⑥playQToolButton/⑦forwardQToolButton/⑧stopQToolButton/
四、主程序实现
4.1mainwindow.h头文件
首先,声明两个头文件:
#includeQFileDialog
#includeQMovie
然后声明若干个槽函数:
privateslots:
voidon_open_clicked();
voidon_play_clicked();
voidon_stop_clicked();
voidon_back_clicked();
voidon_frameSlider_valueChanged(intvalue);//进度条改变槽函数
voidon_forward_clicked();
voidupdateFrameSlider();//movie的进度条更新槽函数
声明三个私有变量:
private:
QStringcurrentMovieDirectory;//当前路径
QMovie*movie;
QStrings="播放";//对播放和暂停按钮进行切换
4.2mainwindow.cpp源文件
首先需要设置movie的缓存模式,这里我们要求当文件播放一遍后返回重新播放,所以使用CacheAll模式:
//新建movie
movie=newQMovie(this);
movie-setCacheMode(QMovie::CacheAll);//设置movie的缓存模式
然后设置movieLabel的背景颜色为Dark:
ui-movieLabel-setBackgroundRole(QPalette::Dark);
ui-movieLabel-setAutoFillBackground(true);//自动填充背景
首先要把图标文件xxx.png添加到生成的.pro根目录中去,然后右击movie,添加新文件,Qt资源文件,定位到根文件夹,命名为button,系统会自动生成.qrc文件。点击.qrc文件,在最下角前缀输入框将/new/prefix1改成/,然后点击添加,添加文件,将几个png文件选择添加,然后进行构建(小锤子),此时再点击.qrc就会看到png文件已经添加进来。
调用QPixmap将图片添加到button中,设置控件固定大小为30*30,setAutoRaise可以将button的外边框去除在鼠标滑过该button时会有浮出效果显示边框,这个效果比较好看。setToolTip函数可以使鼠标放在控件上时提示该控件可以执行的操作,代码如下:
//打开文件
ui-open-setIcon(QIcon(":img/open.png"));
ui-open-setIconSize(QSize(30,30));
ui-open-setAutoRaise(true);
ui-open-setToolTip("Openafile");//工具栏提示
//播放
ui-play-setIcon(QIcon(":img/run.png"));
ui-play-setIconSize(QSize(30,30));
ui-play-setAutoRaise(true);
ui-play-setToolTip("Play");//工具栏提示
////暂停
//ui-pause-setIcon(QIcon(":img/pause.png"));
//ui-pause-setAutoRaise(true);
//ui-pause-setIconSize(QSize(30,30));
//ui-pause-setToolTip("Pause");//工具栏提示
//停止
ui-stop-setIcon(QIcon(":img/stop.png"));
ui-stop-setIconSize(QSize(30,30));
ui-stop-setAutoRaise(true);
ui-stop-setToolTip("Stop");//工具栏提示
//后退
ui-back-setIcon(QIcon(":img/back.png"));
ui-back-setIconSize(QSize(30,30));
ui-back-setAutoRaise(true);
ui-back-setToolTip("SpeedDown");//工具栏提示
//前进
ui-forward-setIcon(QIcon(":img/forward.png"));
ui-forward-setIconSize(QSize(30,30));
ui-forward-setAutoRaise(true);
ui-forward-setToolTip("SpeedUp");//工具栏提示
最后,利用信号和槽将movie的帧改变与滑动条变化进行联系:
//movie的槽函数
connect(movie,SIGNAL(frameChanged(int)),this,SLOT(updateFrameSlider()));
然后定义五个按钮的槽函数:
首先是打开按钮槽函数,首先得打开的路径,QFileInfo(fileName).path()将记录第一次打开文件的路径,当打开文件后,movie就开始自动播放,同时将播放按钮图标修改为暂停:
//打开按钮槽函数
voidMainWindow::on_open_clicked()
QStringfileName=QFileDialog::getOpenFileName(this,"openafile",currentMovieDirectory);
if(!fileName.isEmpty()){
currentMovieDirectory=QFileInfo(fileName).path();
movie-stop();
ui-movieLabel-setMovie(movie);//将标签内容设置为movie
movie-setFileName(fileName);//设置文件名
movie-start();
//切换成暂停按钮
ui-play-setIcon(QIcon(":img/pause.png"));
ui-play-setIconSize(QSize(30,30));
ui-play-setAutoRaise(true);
ui-play-setToolTip("Pause");//工具栏提示
//s改为暂停
s="暂停";
然后是播放/暂停按钮槽函数:
//播放/暂停按钮槽函数
voidMainWindow::on_play_clicked()
if(s=="播放"){
movie-start();
/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖盐脱水工安全生产能力水平考核试卷含答案
- 珍珠岩焙烧工操作能力知识考核试卷含答案
- 绝缘成型件制造工岗前理论实践考核试卷含答案
- 剑麻栽培工安全意识评优考核试卷含答案
- 家畜饲养员岗位知识技能考核试卷含答案
- 塑料制品生产检验工安全生产知识评优考核试卷含答案
- 印染丝光工岗中团队合作考核试卷含答案
- 塑料制品烧结工安全规程测试考核试卷含答案
- 三氯氢硅还原工安全知识模拟考核试卷含答案
- 气体分馏装置操作工岗位技术改进考核试卷含答案
- 水果农药安全间隔期执行手册
- 软包墙面施工方案及技术措施
- 急诊科护理人员的血气分析解读
- 2025年闽侯县公安局招聘警务辅助人员真题
- 2025年安徽省《保密知识竞赛必刷100题》考试题库及答案详解【有一套】
- 2025年度新疆新星国有资本投资集团有限公司校园招聘5人笔试参考题库附带答案详解
- 脊髓电刺激护理
- 自愿收养协议书范本
- 新时代幼儿园教师职业行为十项准则培训
- 食品管理管理制度
- 市政工程工程简介
评论
0/150
提交评论