首页 > 其他分享 >Qt QMovie播放gif(播放、暂停和继续)

Qt QMovie播放gif(播放、暂停和继续)

时间:2024-05-22 09:30:55浏览次数:12  
标签:Qt gif ui QMovie 暂停 播放 MainWindow

有些时候我们需要展示一个gif图片,可是用了普通的方法发现不行。啊哦,这就是生活中的理解和程序猿的区别了,程序猿眼中的gif不是图片,而是一个movie。

QT提供了QMovie来进行操作。

演示示例是通过两个按钮来进行操控,一个负责暂停一个负责进行继续播放。

首先要在头文件中声明这个类,一定不要忘记的: QMovie *m;

具体的实现方法:

 1 MainWindow::MainWindow(QWidget *parent) :
 2     QMainWindow(parent),
 3     ui(new Ui::MainWindow)
 4 {
 5     ui->setupUi(this);
 6     m=new QMovie;
 7     m->setFileName(":/new/prefix1/111.gif");
 8     m->setSpeed(10);//这里设置播放速度,主要是为了看清楚暂停和继续有没有成功执行
 9     ui->label->setMovie(m);
10     m->start();//开始播放
11 }
12 void MainWindow::on_pushButton_clicked()
13 {
14      m->setPaused(true);    //按钮单击,暂停
15 }
16  
17 void MainWindow::on_pushButton_2_clicked()
18 {
19     m->setPaused(false);//改变状态,进行继续播放
20 }
21  
22 MainWindow::~MainWindow()
23 {
24     delete ui;
25 }

这个是在设计师做的,所以有些多,其实关键代码就那几行。

 

标签:Qt,gif,ui,QMovie,暂停,播放,MainWindow
From: https://www.cnblogs.com/ybqjymy/p/18205493

相关文章

  • qt如何将下拉框的框设置为圆角矩形
    在Qt中,可以使用样式表(QSS)来设置下拉框的外观,包括圆角矩形的样式。以下是一个例子://在C++代码中设置样式表QComboBox{border-radius:8px;/*设置圆角半径*/background-color:#FFFFFF;/*设置背景颜色*/color:#333333;/*设置文字颜色*/p......
  • Qt 动画播放之QMovie类
    主要是用到QMovie类实现在事件触发时开启动画播放效果(需要注意的是,这个动画播放默认是循环播放的,如果不做特殊处理动画会一直播放)1QMovie*movie=newQMovie("aaa.gif");2ui->movieLabel->setMovie(movie);3movie->start();//启动gif图片4//movie->......
  • qt之点的绘制示例demo
    #include"mainwindow.h"#include"ui_mainwindow.h"#include<QPainter>#include<QColor>QColorm_color;intm_x=0;intm_y=0;intm_w=0;intm_h=0;MainWindow::MainWindow(QWidget*parent):QMainWindow(parent)......
  • Qt 程序启动画面QSplashScreen
    QSplashScreen是Qt框架提供的一个类,用于在应用程序启动时显示一个带有文本和图像的启动画面(SplashScreen)。使用QSplashScreen类,你可以在应用程序启动时显示一个自定义的启动画面,以提供更好的用户体验。这个类提供了一些方法和属性,可以让你设置启动画面的文本、图像和其......
  • qt中添加多个UI界面,并在其他文件中调用该UI界面
    一、概述qt创建一个新项目时,会创建一个属于mainwindow'的主ui界面,这时如果想要创建多个窗口,可以有三种方法。第一种:使用代码创建一个新窗口,优点是灵活,缺点是麻烦,其中控件和布局都需要代码来创建。第二种:在ui设计界面使用tabwidget控件来达到多个窗口的效果,不过这种方法只能......
  • qt拖动窗口
    voida::mousePressEvent(QMouseEvent*event){if(event->button()==Qt::LeftButton&&event->pos().y()<(this->height()-mainWidget->height())){m_dragging=true;m_dragStarPos=event->pos();}}voida::......
  • QT使用串口通信点击主界面通信阻塞
    1.问题导入在使用QT进行串口上位机开发时遇到鼠标点击主界面导致串口接收数据阻塞,无法继续在QT控件中更新接收到的数据。2.解决办法使用多线程:将串口通信放入子线程中。`QSerialPort*UARTDevide;//串口UART*newUART;//串口类QThreadUARTThred;//串口线程newUART->mo......
  • CLON + QT + CMAKE debug 不打印 (控制台不输出)
    原因:CMAKE设置了WIN32_EXECUTABLETRUE这表示了要生成一个GUI程序,而且WindowsGUI会禁用控制台输出将set_target_properties(aaPROPERTIESWIN32_EXECUTABLETRUE)修改为set_target_properties(aaPROPERTIESWIN32_EXECUTABLEFALSE)或者手动创建控制台:`//未......
  • QT基础语法与控件
    1.基础使用纯正的开源版本QT使用C++来实现QT使用QT可以使C++项目可视化本身也是C++的一个库允许跨平台QT特征面向对象,模块化设计调用,所有QT控件可继承控件之间的通信,signalslot友好的联机帮助,函数参数手册自定义控件设计QTCreator编译器集成开发环境IDE直接下载QT......
  • Ubuntu系统下的mp4播放器
    安装介绍这里推荐一个Ubuntu20.04下可用的本地视频播放器,VLC。可用直接打开本地视频,速度也不错,可用使用apt安装。一般顺序是先安装媒体加码器:$sudoapt-getinstallubuntu-restricted-extras[sudo]xxx的密码:正在读取软件包列表...完成正在分析软件包的依赖关系树......