【Qt QML入门】Image

Image类型显示一个图像。
使用source属性将图像的源指定为URL。图像可以以Qt支持的任何标准图像格式提供,包括位图格式,如PNG和JPEG,以及矢量图形格式,如SVG。
如果没有指定宽度和高度属性,图像将自动使用加载图像的大小。

import QtQuick
import QtQuick.Window
import QtQml

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")
    Image {
        source: "qrc:/img.png"
        fillMode: Image.PreserveAspectFit
        anchors.fill: parent
    }
}

加载文件的过程默认是同步的,也就是会阻塞UI,直到图片加载完成。

如果想加载比较大的图片,可以启用异步属性,在线程中加载该图像。如果图片是从网络资源获得的,则会自动异步加载,并根据需要更新进度和状态属性。

还有一点需要注意,Image被加载成功后,会在内部被缓存和共享,因此如果几个Image项有相同的源,则只会加载图像的一个副本。

Image的属性:

currentFrame:当前可见的帧。默认值为0。如果图像包含多个帧,则可以将其设置为0

frameCount - 1之间的数字,以显示不同的帧。

frameCount:图像中的帧数。大多数图像只有一帧

horizontalAlignment : enumeration

verticalAlignment : enumeration

设置图像的水平和垂直对齐方式。默认情况下,图像是居中对齐的。

水平对齐的有效值为Image.AlignLeft,Image.AlignRight和Image.AlignHCenter。

垂直对齐的有效值为Image.AlignTop,Image.AlignBottom和Image.AlignVCenter。

paintedHeight : real

paintedWidth : real

保存了实际绘制的图像的大小。在大多数情况下,它与宽度和高度相同,但当使用Image.PreserveAspectFit or an Image.PreserveAspectCrop,paintedWidth或paintedHeight可以小于或大于图像项的宽度和高度。

asynchronous : bool

指定本地文件系统上的映像应该在单独的线程中异步加载。默认值为false,在加载图像时导致用户界面线程阻塞。在维护响应式用户界面比立即显示图像更可取的情况下,将异步设置为true非常有用。
注意,此属性仅对从本地文件系统读取的映像有效。通过网络资源(例如HTTP)加载的图像总是异步加载的。

cache : bool

指定是否应该缓存图像。默认值为true。在处理大图像时,将缓存设置为false很有用,以确保它们不会以牺牲小的“ui元素”图像为代价被缓存。

fillMode : enumeration

Image.Stretch-图像被缩放到适合
Image.PreserveAspectFit -图像被均匀缩放以适合而不裁剪
Image.PreserveAspectCrop -图像被均匀缩放以填充,必要时进行裁剪
Image.Tile-图像是水平和垂直复制
Image.TileVertically-图像水平拉伸和垂直平铺
Image.TileHorizontally-图像垂直拉伸,水平平铺
Image.Pad -图像不被转换

mipmap : bool

此属性保留图像在缩放或转换时是否使用mipmap过滤。
与平滑相比,当按比例缩小时,Mipmap过滤提供了更好的视觉质量,但它可能会以性能为代价(在初始化图像和渲染期间)。
默认情况下,此属性设置为false。

mirror : bool

此属性保留图像是否应该水平反转(有效地显示镜像)。
默认值为false。

progress : real

这个属性保存图片加载的进度,从0.0(没有加载)到1.0(完成)。

smooth : bool

此属性用于确定图像在缩放或转换时是否平滑过滤。平滑过滤提供更好的视觉质量,但在某些硬件上可能会变慢。如果图像以其自然大小显示,则此属性没有视觉或性能效果。
默认情况下,此属性设置为true。

source : url

Image可以处理Qt支持的任何图像格式,从Qt支持的任何URL方案加载。
URL可以是绝对的,也可以是相对于组件的URL的。

sourceClipRect : rect

如果设置了此属性,则保存要加载的源图像的矩形区域。
当只需要加载图像的一部分时,sourceClipRect与sourceSize属性一起工作以节省系统资源。

sourceSize : size

此属性保存全帧图像的缩放宽度和高度。
与缩放图像绘制的宽度和高度属性不同,此属性为加载的图像设置存储的最大像素数,以便大型图像不会使用不必要的内存。

如果图像的实际大小大于sourceSize,则图像按比例缩小。如果只将尺寸的一个维度设置为大于0,则按比例设置另一个维度以保持源图像的长宽比。(fillMode与此无关。)
如果两个sourceSize。宽度和sourceSize。高度设置时,图像将按比例缩小以适应指定的大小(除非使用了PreserveAspectCrop或PreserveAspectFit,否则它将按比例缩小以匹配裁剪/拟合的最佳大小),保持图像的宽高比。缩放后图像的实际大小可通过Item::implicitWidth和Item::implicitHeight获得。
如果源是一个本质上可伸缩的图像(例如;SVG),此属性决定所加载图像的大小,而不考虑其固有大小。避免动态更改此属性;呈现SVG比呈现图像要慢。
如果源是一个不可伸缩的图像(例如。JPEG),则加载的图像将不大于此属性指定的大小。对于某些格式(目前只有JPEG),整个图像实际上永远不会加载到内存中。
如果还设置了sourceClipRect属性,则sourceSize确定比例,但它将被剪切为剪辑矩形的大小。
通过将sourceSize设置为undefined,可以将sourceSize清除为图像的自然大小。

注意:动态更改此属性会导致图像源被重新加载。

status : enumeration

这个属性保存图像加载的状态。它可以是:

Image.Null-没有设置图像

Image.Ready-图像已加载

Image.Loading-图像当前正在加载

Image.Error-加载图像时发生错误

使用此状态以某种方式提供更新或响应状态更改。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如果我忽然嗝屁了,家人怎么继承我的财产

前言 笔者很喜欢的电影《寻梦环游记》有这么一句经典台词:“真正的死亡是世界上没有一个人记得你”。 然而,现实中我们所说的“死亡”,其实就是 他再不能与这个世界、与自己在乎的人有新的互动了。 本文,笔者想写一写 关于死亡的…

iOS16.5 以上12小时制/24小时制 HH/hh引起的时间计算错误

iOS16.5以上的版本,如果用yyy-MM-dd HH:mm:ss转换时间,则有肯能发生错误。 先上代码: NSString * timeStr "2023-01-01 11:13:32"; NSDateFormatter * dateFormatter [[NSDateFormatter alloc] init]; [dateFormatter setDateFo…

windows10下jdk安装

文章目录 windows10下jdk安装说明what安装包下载执行安装包验证是否安装成功 windows10下jdk安装 说明 操作系统:windows10 版本:1.8 what JDK(Java Development Kit) 是 Java 语言的软件开发工具包 安装包下载 https://www.oracle.com/java/techn…

Proxmox服务安装

文章目录 系统盘制作 TODO安装系统安装Proxmox系统安装wpa服务配置wifi通过IP访问Proxmox创建服务器配置服务器网络连接虚拟机方式第一种方法:通过建设OpenVPN方式连接虚拟机第二种方法:通过端口转发直连虚拟机设置安装ubuntu服务器允许root用户远程登录…

.net core提示The xx field is required,One or more validation errors occurred

访问接口时缺少model中的参数时,会提示: The xx field is required One or more validation errors occurred原因是.net core webapi默认参数为不可空,因此会验证并报错。 解决方案: 在项目的.csproj中,修改Nullable…

Android--Jetpack--数据库Room详解二

本是青灯不归客,却因浊酒恋红尘 一,基本使用 关于Room数据库的基本使用,请参考文章Android--Jetpack--数据库Room详解一-CSDN博客 二,Room与ViewModle,LiveData的结合使用 LiveData与ViewModle的使用,请参考文章Andr…

谷歌上架应用的机审流程或审核机制是怎么样的?

Google play是全球最大安卓应用市场,拥有巨大的流量,是开发者们上架应用的首选平台。不过,开发者们的应用需要经过谷歌严格审核,确保符合谷歌应用相关政策和法律法规才能成功上架。 众所周知,谷歌审核系统&#xff0c…

基于ssm民宿管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本民宿管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

c语言结构体调用格式与对齐

1.声明形式: struct 结构体名字 { 结构体成员 }结构体变量名; 2.赋值方法 3.结构体对齐: 1.起始偏移量:默认结构体第一个元素对齐0起始偏移量,第一个元素占一个字节,此时偏移量为1. 2.标准数&#xff…

基于stm32 FP-AUD-SMARTMIC1 音频系统开发

基于stm32 FP-AUD-SMARTMIC1 音频系统开发 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, FP-AUD-SMARTMIC1 是一个用于 STM32F4Discovery …

Tcl语言语法精炼总结

一、置换符号 1.变量置换 $ TCl解释器会将认为$后面为变量名,将变量名置换成它的值 2.命令置换 [] []内是一个独立的TCL语句 3.反斜杠置换 \ 换行符、空格、[、$等被TCL解释器当作特殊符号处理。加上反斜杠后变成普通字符 \t TAB \n 换行符 4.双引号 “” “…

spring国际化 - i18n

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…

[LCTF 2018]bestphp‘s revenge

文章目录 前置知识call_user_func()函数session反序列化PHP原生类SoapClient 解题步骤 前置知识 call_user_func()函数 把第一个参数作为回调函数调用 eg:通过函数的方式回调 <?php function barber($type){echo "you wanted a $type haircut, no problem\n";}c…

20231213给Ubuntu18.04.6LTS新加一块HDD机械硬盘

20231213给Ubuntu18.04.6LTS新加一块HDD机械硬盘 2023/12/13 22:50 rootrootrootroot-X99-Turbo:~$ cat /etc/issue Ubuntu 18.04.6 LTS \n \l sudo fdisk -l rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ sudo fdisk -lu Disk /dev/sda: 2.7 TiB, 300059298…

Nginx.conf核⼼配置⽂件解读

Nginx的核⼼配置⽂件conf/nginx.conf包含三块内容&#xff1a;全局块、events块、http块 全局块 从配置⽂件开始到events块之间的内容&#xff0c;此处的配置影响nginx服务器整体的运⾏&#xff0c;⽐如worker进程的数量、错误⽇志的位置等。 运行用户是指操作nginx的用户意…

改进YOLOv8注意力系列二:结合CBAM、Coordinate Attention、deformable_LKA_Attention可变形大核注意力

改进YOLOv8注意力系列二:结合ACmix、Biformer、BAM注意力机制 代码CBAM注意力Coordinate Attention坐标注意力deformable_LKA_Attention可变形大核注意力加入方法各种yaml加入结构本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方式,在本文中具有完整的代…

前端反向代理的神奇世界:加速、安全与缓存的秘密(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

V友故事·感恩节特辑|Vol.7 用 EasyV 开启不受限的可视化设计体验

本期嘉宾 张啸天&#xff08;站酷 ID&#xff1a;张张张夏天&#xff09;&#xff0c;从事设计行业已经 4 年多&#xff0c;接触可视化设计工作大概有 2 年时间。目前就职于卓见云的可视化业务部门&#xff0c;所在团队大概 15 人左右&#xff0c;包含了产品、设计、开发、引擎…

PCL点云处理之判断某一点在三角形的内部、外部、还是边上(二百二十二)

PCL点云处理之判断某一点在三角形的内部、外部、还是边上(二百二十二) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 点与三角形的位置共有三种: 1 内部 2 外部 3 点刚好在边上 (这个判断还是很有必要的,应用广泛,下面代码复制粘贴即可使用,纯C++实现) 二、算…

高效编程“武功秘笈”,手把手教你写一波!

随着今年人工智能技术的大火&#xff0c;越来越多的领域正在接受和利用这项强大的 AI 科技&#xff0c;以实现更高效、更智能的工作方式。在软件开发领域&#xff0c;AI 技术更是为我们的工作带来了前所未有的变革。从自动代码生成到智能编程助手&#xff0c;AI 正在逐步改变开…