QML Canvas 代码演示

一、文字阴影 / 发光

Canvas
    {
        id: root; width: 400; height: 400

        onPaint:    //所有的绘制都在onPaint中
        {
            var ctx = getContext("2d")  //获取上下文

            // 绘制带阴影的文本
            ctx.fillStyle = "#333"  //设置填充颜色
            ctx.fillRect(0, 0, root.width, root.height) //实心矩形填充(起点的x,起点y,宽度,高度)

            ctx.shadowColor = "lightblue"   //阴影颜色,描述阴影的代码要放在阴影对象的前面,否则不会生效
            ctx.shadowOffsetX = 2   //阴影向右偏移
            ctx.shadowOffsetY = 2   //阴影向下偏移
            ctx.shadowBlur = 5  //阴影模糊,数值越大越模糊,模糊面积也越大

            ctx.font = "bold 80px sans-serif"
            ctx.fillStyle = "lightgreen"
            ctx.fillText("Canvas!", 40, 200) //绘制的文本(String,x,y)
        }
    }
运行效果

 

 

 

 

 

 

 

 

 

 二、显示图片 / 裁剪图片

Canvas
    {
        width: root.width; height: root.height

        onPaint:    //所有的绘制都在onPaint中
        {
            var ctx = getContext("2d")           //获取上下文

            ctx.drawImage("img/Z.jpg", 10, 10)   //drawImage(图片路径,起点x, 起点y)

/*+++++++++++++++++ 裁剪显示图片:只显示三角形中的部分 ++++++++++++++++++++*/

            ctx.save()              //保存当前状态

            ctx.strokeStyle = "red" //填充颜色
            ctx.lineWidth = 2       //线条宽度
            ctx.beginPath()         //开始绘制
            ctx.moveTo(310, 30)     //绘制的起点
            ctx.lineTo(510, 30)     //线条绘制的第2个位置
            ctx.lineTo(410, 150)    //线条绘制的第3个位置
            ctx.closePath()         //绘制完毕
            ctx.stroke()            //渲染,否则图案不显示

            ctx.clip()              //进入裁剪状态
            ctx.drawImage("img/Z.jpg", 310, 30)

            ctx.restore()           //裁剪完成后重置状态,这样就能保证2张图片都能显示
        }

        //预加载图片,否则画布图片不显示
        Component.onCompleted:
        {
            loadImage("img/Z.jpg")
        }
    }
运行效果

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

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

相关文章

Fluid 1.0 版发布,打通云原生高效数据使用的“最后一公里”

作者:顾荣 前言 得益于云原生技术在资源成本集约、部署运维便捷、算力弹性灵活方面的优势,越来越多企业和开发者将数据密集型应用,特别是 AI 和大数据领域应用,运行于云原生环境中。然而,云原生计算与存储分离架构虽…

【数字化转型,销售先行】销售的数字化转型需要做哪些工作?

引言:销售进行数字化转型的背景主要包括市场环境的快速变化、新技术发展的推动、企业发展的需求以及数据驱动决策的需求。这些背景因素共同促使企业加快数字化转型步伐,以适应市场变化、提升竞争力并实现可持续发展。 销售的数字化转型包含哪些内容&…

Qt飞机大战小游戏

Gitee地址 :plane-game: 基于Qt的飞机大战小游戏 GitHub地址: https://github.com/a-mo-xi-wei/plane-game

群晖NAS安装配置Joplin Server用来存储同步Joplin笔记内容

一、Joplin Server简介 1.1、Joplin Server介绍 Joplin支持多种方式进行同步用户的笔记数据(如:Joplin自己提供的收费的云服务Joplin Cloud,还有第三方的云盘如Dropbox、OneDrive,还有自建的云盘Nextcloud、或者通过WebDAV协议来…

-bash: unzip: command not found

1、报错截图如下 2、解决办法 yum install unzip

【Python/Pytorch - 网络模型】-- 手把手搭建3D VGG感知损失模型

文章目录 文章目录 00 写在前面01 基于Pytorch版本的3D VGG代码02 论文下载 00 写在前面 感知损失:对于提升图片的肉眼可见细节,效果十分明显;对于一些指标如(SSIM、PSNR)这些,效果不明显。 在01中&…

微服务之远程调用

常见的远程调用方式 RPC:Remote Produce Call远程过程调用,类似的还有 。自定义数据格式,基于原生TCP通信,速度快,效率高。早期的webservice,现在热门的dubbo (12不再维护、17年维护权交给apac…

A+B依旧可以卷!多尺度特征融合+注意力机制,新SOTA准确率高达99%

在处理复杂实际问题时,我们可以结合多尺度特征融合和注意力机制,让模型不仅能从多个尺度上捕获丰富的特征信息,还可以专注于输入中的关键部分,来提高模型的泛化能力和性能。 具体到图像处理领域,这种方法就是允许模型…

风控中的文本相似方法之余弦定理

一、 余弦相似概述 余弦相似性通过测量两个向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。 从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。结果是与向量的长…

重新安装TortoiseGit后提示权限错误问题解决

今天在Windows11系统中下载安装使用TortoiseGit可视化Git工具,进行代码提交管理。 由于电脑之前是一位开发人员在使用,所以曾经安装使用过这个工具。 重新安装好软件后,在coding网站中复制代码路径后,在本地目录通过鼠标右键选择…

WPF/C#:异常处理

什么是异常? 在C#中,异常是在程序执行过程中发生的特殊情况,例如尝试除以零、访问不存在的文件、网络连接中断等。这些情况会中断程序的正常流程。 当C#程序中发生这种特殊情况时,会创建一个异常对象并将其抛出。这个异常对象包…

Go微服务框架Kratos中makefile命令的使用方法及报错处理

运用 kratos 微服务框架开发项目时,可以使用提供的 makefile 中的命令自动且快速生产相关代码,提高开发效率。 krotos中makefile文件内容如下: GOHOSTOS:$(shell go env GOHOSTOS) GOPATH:$(shell go env GOPATH) VERSION$(shell git descri…

翻译英文文献工具

翻译英文文献工具 1. zotero1. 安装zotero2. 安装pdf翻译器2.1. 查看zotero版本2.2. 下载对应的pdf翻译器插件版本2.3. 安装插件2.4. 使用插件 2. 小绿鲸英文文献阅读器1. 安装2. 使用 1. zotero 1. 安装zotero 官网: https://www.zotero.org/ 一键next默认安装就…

(四)React组件、useState、组件样式

1. 组件 1.1 组件是什么 概念:一个组件就是用户界面的一部分,它可以有自己的逻辑和外观,组件之间可以相互嵌套,也可以复用多次。 组件化开发可以让开发者像搭积木一样构建一个完整的庞大应用 1.2 React组件 在React中&#xf…

独具韵味的移动端 UI 风格

独具韵味的移动端 UI 风格

《转载》前苏联的三进制计算机Setun

1、苏联的三进制计算机概述 早在 1956 年,就需要创建一种可在大学和实验室中使用的实用数字计算机模型。为此,需要一种易于学习、可靠、廉价但同时高效、专为大规模使用而设计的小型计算机。 对这种机器的要求:运行速度必须等于每秒数百次操作…

求单源最短路径的新方法

参见:dijkstra 算法为什么高效。 本来不想谈算法,本来只想了一下 dijkstra 算法背后的形而上,但还是归纳出一个仅靠一次广度优先遍历就能获得单源最短路径的新算法,框图里是算法流程,流程下是一个例子: …

Ubuntu Server 20.04挂载磁盘

先查看磁盘信息: sudo fdisk -l然后提供NTFS文件系统支持: sudo mkfs.ntfs /dec/sda -F这个过程非常久… 处理完如上图。(ps. 这个 Have a nice day. 好浪漫~) 接着挂载磁盘: sudo mount /dev/sda ~/device设置开机…

系统架构设计师 - 操作系统(2)

操作系统 操作系统(5-6分)文件管理绝对路径与相对路径 ★索引文件 ★★★位示图 ★ 存储管理段页式存储 ★★★页式存储段式存储段页式存储(了解) 页面置换算法 ★ 微内核操作系统嵌入式操作系统 ★★★ 大家好呀!我是…

第五十一天 | 1143.最长公共子序列

题目:1143.最长公共子序列718.最长重复子数组的区别是,子序列不要求连续,子数组要求连续。这一差异体现在dp数组含义和递推公式中,本题是子序列,那就要考虑上nums1[i - 1] ! nums2[j - 1]的情况。 本道题与 1.dp数组…