Qt扫描-QMoive 理论总结

news2025/1/15 3:16:14

QMoive 理论总结

  • 一、概述
  • 二、使用
    • 1. 使用
    • 2. 信号发出时机
  • 三、控制的相关槽函数
  • 四、信号

一、概述

QMovie类是一个使用QImageReader播放 动画 的方便类。这个类用于显示没有声音的简单动画,一般即是 gif 动画。如果要显示视频和媒体内容,请使用Qt Multimedia多媒体框架。
在这里插入图片描述

在这里插入图片描述

二、使用

1. 使用

首先,通过向QMovie的构造函数传递文件名称或指向包含动画图像格式的QIODevice的指针来创建QMovie对象。我们可以在开始播放 Movie 之前调用isValid()来检查图像数据是否有效。

要开始播放 Movie ,请调用start()。QMovie将进入Running状态,并发出started()和stateChanged()。要获取 Movie 的当前状态,请调用state()。

要在应用程序中显示 Movie ,可以将QMovie对象传递给QLabel::setMovie()。例子:

  QLabel label;
  QMovie *movie = new QMovie("animations/fire.gif");

  label.setMovie(movie);
  movie->start();

2. 信号发出时机

每当 Movie 中有新帧可用时,QMovie将发出 updated()。如果帧的大小发生变化,则触发 resized()。你可以调用currentImage()或currentPixmap()来获取当前帧的副本。当 Movie 完成时,QMovie发出finished()。如果在播放过程中出现任何错误(即,图像文件损坏),QMovie将发出error()。

我们可以通过调用setSpeed()来控制 Movie 播放的速度,该方法将原始速度的百分比作为参数。

  QMovie movie("racecar.gif");
  movie.setSpeed(200); // 2x speed

通过调用setPaused(true)暂停 Movie 。QMovie将进入暂停状态并触发statechange()。如果调用setPaused(false), QMovie将重新进入Running状态并重新开始 Movie 。要停止 Movie ,调用stop()。

某些动画格式允许我们设置背景颜色。我们可以调用setBackgroundColor()来设置颜色,或者调用backgroundColor()来检索当前的背景颜色。

currentFrameNumber()返回当前帧的序列号。动画中的第一帧的序列号为0。frameCount()返回动画中的帧总数,如果图像格式支持的话。我们可以调用loopCount()来获得 Movie 在结束之前应该循环的次数。nextFrameDelay()返回当前帧应该显示的毫秒数。

QMovie可以通过调用 setCacheMode() 来指示缓存动画的帧。

三、控制的相关槽函数

就是一些开始、暂停、结束、跳过帧的函数

  • jumpToNextFrame()
  • setPaused(bool paused)
  • setSpeed(int percentSpeed)
  • start()
  • stop()

四、信号

  • error(QImageReader::ImageReaderError error)
  • finished()
  • frameChanged(int frameNumber)
  • resized(const QSize &size)
  • started()
  • stateChanged(QMovie::MovieState state)
  • updated(const QRect &rect)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1127406.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter最全面试题大全

在理解这些问题之前,建议看一下Flutter架构原理,如下链接: https://blog.csdn.net/wang_yong_hui_1234/article/details/130427887?spm1001.2014.3001.5501 目录 一. 有个Text节点,由于文字内容过多,发生了溢出错误&…

thinkPHP5.0字符集修改为utf8mb4

Q:为什么要用utf8mb4 A:utf8mb4可以直接保存emoji字符 MySQL修改字符集 // 数据表编码改为utf8mb4 function to_utf8mb4() {$database config("database.database");$sql "ALTER DATABASE {$database} CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;&q…

服务端返回响应 任务分配给线程

package TCP6;// 完成TCP通信服务端 多发多收import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.Executors; import java.util.conc…

I/O模型之非阻塞IO

简介 五种IO模型   阻塞IO   非阻塞IO   信号驱动IO   IO多路转接    异步IO 代码书写 非阻塞IO 再次理解IO 什么是IO?什么是高效的IO? 为了理解后面的一个问题,我们首先要再重新理解一下什么是IO 在之前的网络介绍中&#xff…

北漂七八年,有得亦有失,只有回到家才能找到归属感与幸福!

1. 写在前面 今天这个日子,想必大家再熟悉不过了。在这里祝每一位程序员节日快乐,同时也祝愿各位今后的编码事业一帆风顺!转眼自己踏入这个行业再有个两三年就要十年磨一剑了。所见所闻以及所悟虽不能与行业内老前辈们相比,但所过…

C++入门指南:带你快速了解模板(建于收藏!!)

C入门指南:带你快速了解模板(建于收藏!!) 一、泛型编程(模板引入)二、函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.4.1 隐式实例化2.4.2 显示实例化 2.5…

基于springboot实现CSGO赛事管理系统【项目源码+论文说明】

基于SpringBoot实现CSGO赛事管理系统演示 摘要 CSGO赛事管理系统是针对CSGO赛事管理方面必不可少的一个部分。在CSGO赛事管理的整个过程中,CSGO赛事管理系统担负着最重要的角色。为满足如今日益复杂的管理需求,各类的管理系统也在不断改进。本课题所设计…

npm 安装到指定文件夹

创建一个文件夹,用vscode或者cmd打开, 执行 npm install --prefix ./ 路径 包名, npm install --prefix ./ 包名 , 就会将包安装在当前文件夹, 例如: npm install --prefix ./ -g oppo-minigame…

AutoCAD 2024 Mac中文附激活补丁 兼容M1.M2电脑

AutoCAD 2024是一款功能强大的CAD设计绘图工具,旨在帮助用户创建和编辑高质量的设计图纸和模型。该软件支持2D和3D设计,具有丰富的功能和工具,可用于绘图、建模、注释、标注、尺寸设置等多种操作。AutoCAD 2024还引入了智能对象捕捉、实时预览…

脉宽调制(PWM)开关驱动

脉宽调制(PWM)开关驱动 对于某些依赖于输入的有效驱动电压来控制执行效果的执行器,广泛地使用PWM开关驱动。PWM(Pulse Width Modulation)是脉宽调制的英文缩写。它使用一个固定幅值且频率保持一定的脉冲输出&#xff…

# Eolink 1024 程序员节特别活动,邀您参与!

Eolink 已和 Linker 们一起走过了 7 年,又到 1024 程序员节, Eolink 为大家特别准备了节日福利! 🎉 福利活动一: 关注「Eolink」公众号,后台回复「1024」即可参与抽奖! 🎉 福利活动…

IDC发布生成式AI采用旅程报告:容联云助力银行引入生成式AI

近日,国际数据公司IDC发布了《从典型落地案例看生成式AI采用旅程,3Q23》报告,通过几个典型案例介绍用户采用生成式AI的考量、应用场景、落地路线、决策流程,为最终用户提供参考建议。 容联云基于自研赤兔大模型助力《XX银行服务营…

基于springboot实现CSGO赛事管理系统【项目源码+论文说明】计算机毕业设计

基于SpringBoot实现CSGO赛事管理系统演示 摘要 CSGO赛事管理系统是针对CSGO赛事管理方面必不可少的一个部分。在CSGO赛事管理的整个过程中,CSGO赛事管理系统担负着最重要的角色。为满足如今日益复杂的管理需求,各类的管理系统也在不断改进。本课题所设计…

(九)QVTKOpenGLNativeWidget同时显示点云和模型

一、加载点云 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); //创建点云指针QString fileName QFileDialog::getOpenFileName(this, "Open PointCloud", ".", "Open PCD files(*.pcd)");if(f…

Oracle 中 group by 的使用需要注意的地方

1.业务场景 需要将2023年1-12月的数据全部查出&#xff0c;并以行的形式呈现。这里要用到行转列的思路&#xff0c;我采用的是简单的case when函数。 2.group by 的使用方法 WHERE xxx1xx AND xxx2yy group by (除聚合函数以外的所有字段)举个例子&#xff1a; select stud…

alpha shape 2D点集边缘线提取

Delaunay三角网 alpha shape 2D点集边缘线提取 Delaunay三角网 参考blog: Scipy 笔记 [Geometry] Alpha Shapes - 原理及我的实现Alpha Shape Widyaningrum E , Peters R Y , Lindenbergh R C . Building outline extraction from als point clouds using medial axis transfo…

MATLAB——一维离散小波的单层分解

%% 学习目标&#xff1a;一维离散小波的单层分解 %% clear all; close all; load noissin.mat; [cA,cD]dwt(noissin,sym4); %% cA是近似系数&#xff08;低频部分&#xff09;&#xff0c;cD是细节系数&#xff08;高频部分&#xff09;&#xff0c;采用的小波是sym4 f…

2023.10.22 关于 定时器(Timer) 详解

目录 引言 标准库定时器使用 自己实现定时器的代码 模拟实现的两大方面 核心思路 重点理解 自己实现的定时器代码最终代码版本 引言 定时器用于在 预定的时间间隔之后 执行特定的任务或操作 实例理解&#xff1a; 在服务器开发中&#xff0c;客户端向服务器发送请求&#…

Banana Pi BPI-W3(Armsom W3)RK3588开当板之调试UART

前言 本文主要讲解如何关于RK3588开发板UART的使用和调试方法&#xff0c;包括UART作为普通串口和控制台两种不同使用场景 一. 功能特点 Rockchip UART (Universal Asynchronous Receiver/Transmitter) 基于16550A串口标准&#xff0c;完整模块支持以下功能&#xff1a; 支…