Qml 图片和加载器操作

news2024/9/21 19:09:30

学习目标:Qml 图片和加载器编程

学习前置

 Qt Qml编程 基础部分 认识qml-CSDN博客

实现效果

对图片的基本操作

加载器

 核心代码

加载器

思路: 创建一个加载器 默认是几个圆点,我们重写加载器元素(contentItem),定义了一个矩形,通过参数设置变成一个圆,重写渐变,效果 增加圆 过渡动画

import QtQuick 2.12
import QtQuick.Window 2.12


import QtQuick.Controls 2.5
import QtGraphicalEffects 1.0

//等待指示器  操作需要长时间加载或处理时显示加载状态。
Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    BusyIndicator{
        id:buys

        anchors.centerIn: parent
        implicitWidth: 200
        implicitHeight: 200

        contentItem: Item { //定义了BusyIndicator的内容
            id: itm1
            Rectangle{ //用于绘制 BusyIndicator 的外围边框
                id:rect1
                width: parent.width
                height: parent.height
                color: Qt.rgba(0,0,0,0);
                radius: width/2
                //控制圆圈的粗细
                border.width:  width/8
                visible: true //边框可见
            }

            ConicalGradient{//一个锥形渐变元素,用于绘制 BusyIndicator 的旋转圆圈。
                width: rect1.width
                height: rect1.height
                source: rect1 //渐变效果的源图像


                gradient: Gradient{  //渐变效果
                    GradientStop {position: 0.0;color:"black"} //圆圈颜色
                    GradientStop {position: 1.0;color:"white"} // 跟踪圆圈旋转后面的颜色
                }

                

                Rectangle{ //红色动点
                    anchors.top: parent.top
                    anchors.horizontalCenter: parent.horizontalCenter
                    width: rect1.border.width
                    height: width
                    radius: width/2
                    color: "red"
                }

                RotationAnimation on rotation {  //过渡旋转动画
                    from:0
                    to:360
                    duration: 2000
                    loops: Animation.Infinite;//循环
                }
            }


        }


    }

}

图片 

import QtQuick 2.12
import QtQuick.Window 2.12

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Image元素--测试程序")



    Column{
        anchors.centerIn: parent
        spacing: 8 //间隔
        Image {
            width: 60
            height: 60
            source: "qrc:a.jpg"
            //填充模式不会变形
            fillMode: Image.Pad
        }

        Image {
            width: 20
            height: 20
            source: "qrc:a.jpg"
            fillMode: Image.PreserveAspectFit // 图像填充模式--按照比例缩放填充 不裁剪
        }

        Image {
            width: 40
            height: 40
            source: "qrc:a.jpg"

            fillMode: Image.TileVertically // 图像填充模式--水平填充 垂直复制


        }

        Image {
            width: 80
            height: 80
            source: "qrc:a.jpg"
            fillMode: Image.TileHorizontally // 图像填充模式--垂直填充 水平复制

        }
    }
}

 总结:

qml语言规范有些抽象,事先定义了很多规范,比如渐变效果。使用起来必须查看文档,否则很容易吃眼界的亏

 最后附上源代码链接
对您有帮助的话,帮忙点个star

Qt demo: 学习qt过程 (gitee.com)

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

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

相关文章

文献阅读:高效和稳健的 π-FISH rainbow 用于多种生物分子的多重原位检测

文献介绍 文献题目: Highly efficient and robust π-FISH rainbow for multiplexed in situ detection of diverse biomolecules 研究团队: 曹罡(华中农业大学)、戴金霞(华中农业大学) 发表时间&#xff…

RSA算法(C++)

RSA加解密过程 RSA为非对称加密算法,由一对公钥和一对私钥构成,私钥加密公钥解密,公钥加密私钥解密 如下图,D为私密的,假设传输英文字母,我们给英文字母编号A1,B2,C3… RSA加解密过程 两对密钥产生方法如下 C Op…

网络通信基本知识

网络通信 什么是网络通信? 通信网络是指将各个孤立的设备进行物理连接,实现人与人,人与计算机,计算机与计算机之间进行信息交换的链路,从而达到资源共享和通信的目的。 什么是网络协议? 网络协议是计算机…

Python函数 之 参数

1.参数的简单介绍 参数 形式参数(形参):在函数定义的时候,在括号中写⼊变量,这个变量就称为是函数的参数。实际参数(实参):在函数调⽤的时候,可以给定义时候的形参传递具体的数据值,供其使⽤。注: 在函数调⽤的时候,会将函数的实…

wps 将列的内容转换为一个单元格内容,并以逗号分隔

wps 将列的内容转换为一个单元格内容,并以逗号分隔 1.首先在一个空白单元格输入 2.输入函数TEXTJOIN 这个函数有三个参数,第一个:以什么分隔符分隔,第二个:是否忽略空白格,true:忽略 false:不忽略 第三个&…

怎么使用代理IP?如何检测代理IP是否有效?

代理IP是一种网络代理技术,它是通过中间服务器来转发网络请求的IP地址。当我们使用代理IP时,我们的真实IP地址会被隐藏起来,而代理服务器的IP地址会被用作我们的身份标识。使用代理IP的步骤如下: 1.选择合适的代理服务器 考虑服务…

【微信小程序知识点】转发功能的实现

转发功能,主要帮助用户更流畅地与好友分享内容与服务。 想实现转发功能,有两种方式: 1.页面js文件必须声明onShareAppMessage事件监听函数,并自定义转发内容。只有定义了此事件处理函数,右上角菜单才会显示“转发”按…

WebStorm 使用 ESLint 自动格式化代码

WebStorm 不能像 VSCode 那样在保存的时候自动 Fix-ESLint,不能自动格式化代码,需要安装一个插件 安装 ESLint 插件 进入设置快捷键 win:CtrlAltS mac: command, 找到 Plugins,搜索eslint 在这里插入图片描述 安装后配置一下 …

【通信协议-RTCM】MSM语句(1) - 多信号GNSS观测数据消息格式

注释: RTCM响应消息1020为GLONASS星历信息,暂不介绍,前公司暂未研发RTCM消息类型版本的DR/RTK模块,DR/RTK模块仅NMEA消息类型使用 注释: 公司使用的多信号语句类型为MSM4&MSM7,也应该是运用最广泛的语句…

从新手到进阶:高效设计 Tableau 可视化的 5 种技巧 | 数据可视化分析

让我们一起跟着大神学习五个超实用的技巧,加速你的可视化分析之旅! 在日常分析中,人人都想实现可视化最佳实践。然而,对于很多初学者来说,在还未熟练掌握 Tableau 的情况下,这种愿望貌似不太符合实际。 为…

【想心静?】红尘中修炼的功夫,才是真正的功夫

刘君亮想要去山中静坐,先生说: 你若是以厌弃身外事物的心去静中寻求天理,反而只会养出骄傲怠惰的习气。你若能不厌弃身外事物,然后再到静处涵养天理,却是好的。 去一个安静的地方,去沉静一下自己的内心也…

电子画册制作流程技巧大揭秘

​随着科技的发展,电子画册已经逐渐取代传统纸质画册,成为展示企业形象、传播信息的重要工具。一份精美的电子画册,不仅能提升企业品牌形象,还能吸引更多潜在客户。那么,如何制作一份既精美又实用的电子画册呢&#xf…

YOLOv8损失函数改进-增加MPDIoU提升边界框回归精度【附代码】

文章目录 前言文章概述必要环境一、修改方法1.修改配置文件2. 增加 MPDIoU3. 修改 BboxLoss类4. 修改 v8DetectionLoss 类的 init 方法 二、训练代码三、训练过程总结 前言 本篇博客我们将详细介绍如何在 YOLOv8项目中增加 MPDIoULoss,包括如何修改配置文件、增加新…

U盘打不开难题解析:原因、恢复与预防全攻略

在日常生活中,U盘作为一种便捷的数据存储设备,深受大家的喜爱。然而,有时我们可能会遇到U盘打不开的情况,这不仅令人困扰,还可能导致重要数据的丢失。那么,当U盘打不开时,我们该如何应对呢&…

[PM]原型与交互设计

原型分类 1.草图原型 手绘图稿, 规划的早期,整理思路会使用 2.低保真原型 简单交互, 无需配色, 黑白灰为主, 产品规划和评审阶段使用 标准化的低保真原型是高保真原型的基础 3.高保真原型 复杂交互, 一般用于公开演示, 产品先产出低保真原型, 设计师根据原型产出设计稿 低保…

2024-07-12 Unity AI状态机1 —— 框架介绍

文章目录 1 有限状态机2 状态机实现框架2.1 StateMachine2.2 BaseState2.3 ...State2.4 IAIObject 3 框架类图 本文章参考 B 站唐老狮 2023 年直播内容。点击前往唐老狮 B 站主页。 1 有限状态机 ​ 有限状态机(Finite - State Machine,FSM&#xff09…

如何让招投标数据成为企业决策的金钥匙?

在当今数据驱动的时代,招投标信息作为行业竞争情报的重要组成部分,正日益成为企业制定战略决策的关键依据。本文将深入探讨招投标数据采集的重要性,以及它如何为企业决策提供强有力的数据支持,同时揭秘如何高效、精准地获取这些数…

花几千上万学习Java,真没必要!(二)

1、注释: java代码注释分3种: 单行注释://注释信息 多行注释: /*注释信息*/ 文本注释:/**注释信息*/ public class TestComments {// 这是单行注释,用于注释单行代码或解释代码功能/* 这是多行注释,用于注释多行代码…

eMMC规范 - 寻址/信息寄存器/总线协议/时序图/速度模式

存储器寻址 e•MMC 规范的早期实现(至 v4.1 的版本)是采用 32-bit 域实现字节寻址的。这种寻址 机制允许最大 2 GB 的 e•MMC 容量。 为了支持更大的容量,寻址机制升级到支持扇区寻址( 512B 扇区)。对所有容量大于 2 …

在PyQt中为自己开发的软件实现远程文件“一机一码”授权管理实例

在使用PyQt搞软件开发时,开发者往往想要给自己的软件添加一个授权机制,只有当客户提供了授权码并且开发者将授权码放在授权管理系统的时候,客户端才能正常启动。这几天小陶就在捣鼓这个事,发现确实是可行的。 如果没有进行授权&a…