Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)

news2024/12/22 22:52:50

Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)

目录

  • Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)
    • 前言
    • 简单的平移、旋转和放缩
    • 其他元素的一些基本使用
    • qml文件作为控件时,务必以大写字母开头命名
    • 小结

前言

上一个教程我们已经讲述了基本元素Text Image Rectangle的使用,并且其中也涉及了Mousearea鼠标区域,本节仍然是针对基本元素的学习和实践,以作后续回顾之用。

上一篇链接:【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)_ADi_hhh的博客-CSDN博客

简单的平移、旋转和放缩

  • 平移是通过改变x,y的位置来实现的
  • 旋转通过rotation属性,该值为0~360
  • 放缩通过scale属性实现,<1代表缩小,>1代表放大。

为了更好地与图片交互,重新创建一个定义的“可点击图片”元素,该元素基于Image元素创建。

在项目处新建文件夹,命名为“Components”

在“Components”文件夹中,点击“新建”,点击新建文件,创建qml文件,命名为“ClickableImage.qml”

创建新的qml文件

修改CMakeList文件,加入新创建的文件

修改CmakeList

在ClickableImage.qml文件中写入以下代码:

import QtQuick

//simple image which can be clicked
Image{
    id:root1
    signal clicked
    MouseArea{
        anchors.fill: parent
        onClicked: root1.clicked()
    }

}

上面代码依据Image元素创建,后续利用ClickableImage元素创建图片,图片就是可以点击的了。

在main.qml中写入以下代码,并在前面加上import "components"

  Image{
        id:bg
        source:"https://ts1.cn.mm.bing.net/th/id/R-C.13881c555584a29d4d2f3788232ef730?rik=jkE1V0bQyMVOaA&riu=http%3a%2f%2fimg.mm4000.com%2ffile%2f4%2f31%2f65b9d39e84.jpg&ehk=dnq80Zih3kNPSCZoSNF3ET6kWi0vN40flGVN1QP458I%3d&risl=&pid=ImgRaw&r=0"
    } //背景图片
    MouseArea{
        id:bgclicker
        anchors.fill: parent
        onClicked: {
            cat.x =12
            beauty.x =150
            beauty.rotation =0
            beauty.scale =1.0

        } //鼠标区域,点击这一区域,图片归位
    }
 
 ClickableImage{
        id:cat
        x:12;y:250
        source: "https://ts1.cn.mm.bing.net/th/id/R-C.c1ef7c28ec0c3a03671bf8c5b84824a9?rik=gtgH8z39ogolSA&riu=http%3a%2f%2fimg.touxiangwu.com%2fuploads%2fallimg%2f230101%2f1_010120010R534.jpg&ehk=%2bP%2fA9Bc1Xw28uBxAFWEP0qGpscER%2bd8hq%2flkynX4qUw%3d&risl=&pid=ImgRaw&r=0"
        //可以加载网页图片
        antialiasing: true //抗锯齿,图片过渡更加平滑
        onClicked: {
            x+=20// x方向平移
        }
    }
    ClickableImage{
        id:beauty
        x:150;y:350
        source: "https://ts1.cn.mm.bing.net/th/id/R-C.6ea41fdad2fdbe324a84b6b68969ae4d?rik=nsNtS0in5lEFjw&riu=http%3a%2f%2fimg.touxiangwu.com%2fuploads%2fallimg%2f221229%2f1_12291Q03140R.jpg&ehk=Irzz7kT29gRfpRgrn7Z7KipUPsJuV6HR0yZGdyFD41M%3d&risl=&pid=ImgRaw&r=0"
        //可以加载网页图片
        antialiasing: true
        onClicked: {
            x+=20
            rotation +=15 //旋转
            scale -=0.05 //放缩
        }
    }

上面的图片都是我使用网络上的图片,其中的Mousearea是保证在点击窗口其他位置时,图片会恢复到初始状态;第一张图片id为cat,点击后会发生x方向上的平移;第二张图片id为beauty,点击后会发生x方向上的平移,顺时针的旋转以及缩小5%。

编译运行,结果如下:

运行效果动图

注意在点击空白区域时,两张图片都恢复到最开始的状态了。

其他元素的一些基本使用

可以使用property限定符向新元素添加新属性,后跟类型、名称和可选的初始值

property<类型><名称>:<值>

声明属性的另一种重要方式是使用别名关键字

property alias<名称>:<引用>

property alias 赵子龙:赵云

视觉元素是如Rectangle这样的,具有几何形状

非视觉元素如Timer提供一般功能,通常用于控制视觉元素

Item是所有视觉元素的基础元素,因此其他所有视觉元素都从Item继承。他本身并不绘制任何东西,但定义了所有视觉元素的共同属性

qml文件作为控件时,务必以大写字母开头命名

今天我就遇到了这样一个问题,当以小写字母开头命名时,使用这个元素控件怎么也不成功,但是重建一个文件以大写字母开头命名就成功了,原谅我的无知。

务必以大写字母开头命名

qml命名规范

小结

本文主要介绍了简单的变换包括平移旋转和缩放,以及一些其他的元素使用基本规范和自己踩的一个坑,本来还想要介绍文本输入TextEdit等以及锚定anchor 和Positioning相关的内容,但写的有些杂乱,还是遇到的时候在代码中回顾吧,所以就把仅有的一部分内容发出来了,下一节将会继续介绍动画相关的内容。

如果您觉得我写的不错,麻烦给我一个免费的赞!如果内容中有错误,也欢迎向我反馈。

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

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

相关文章

力扣题库刷题笔记682-棒球比赛

1、题目如下&#xff1a; 2、个人Python代码实现如下&#xff1a; 代码如下&#xff1a; class Solution: def calPoints(self, operations: List[str]) -> int: i 0 #用于遍历元素的下标 while i < len(operations): …

【Python入门篇】——Python基础语法(数据类型与数据类型转换)

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; Python入门&#xff0c;本专栏主要内容为Python的基础语法&#xff0c;Python中的选择循环语句…

数据结构与算法导学

文章目录 数据结构和算法导学认识数据结构认识算法总结 数据结构和算法导学 程序 数据结构 算法 认识数据结构 什么是数据结构&#xff1f; 数据结构是一门研究计算机中数据存储和数据操作的学科。 为什么要学习数据结构&#xff1f; 学习数据结构能让我们写出更加优秀的代码…

关于在线帮助中心你需要思考以下几个问题

搭建帮助中心是大多数企业都在尝试做的事情&#xff0c;它的重要性对于企业来说不言而喻。现在对于企业来说&#xff0c;搭建帮助中心或许不是什么难事&#xff0c;但是关于帮助中心&#xff0c;有几个问题需要思考清楚&#xff0c;才能让其发挥最大的价值。 一、如何让用户养成…

CAS 原子操作类

CAS 原子类 java.util.concurrent.atomic 是什么 CAS compare and swap的缩写&#xff0c;中文翻译比较并交换&#xff0c;实现并发算法时常用的一种技术 它包含三个操作数–内存位置、预期原值及更新值 执行CAS操作时&#xff0c;将内存位置的值与预期原值比较 如果相匹…

网络协议与攻击模拟-05-ICMP协议

ICMP 协议 1、理解 ICMP 协议 2、理解 ICMP 重定向 3、会使用 wireshark 分析 ICMP 重定向流量实验 一、 ICMP 基本概念 1、 ICMP 协议 Internet 控制报文协议&#xff0c;用于在 IP 主机、路由器之间传递控制消息&#xff0c;控制消息指网络通不通、主机是否可达、路由是否…

荔枝派Zero(全志V3S)驱动开发之hello驱动程序

文章目录 前言一、设备驱动分类二、字符设备驱动简介三、字符设备驱动开发1、APP打开的文件在内核中如何表示2、编写驱动程序的步骤3、hello 驱动程序编写<1>、试验程序编写<2>、测试程序编写<3>、编写 Makefile<4>、编译 3、运行测试<1>、上传程…

PyTorch实战4:猴痘病识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;365天深度学习训练营-第P4周&#xff1a;猴痘病识别&#x1f356; 原作者&#xff1a;K同学啊|接辅导、项目定制 目录 一、搭建CNN网络结构1、原文网络结构1.1、网络…

4。计算机组成原理(2)存储系统

嵌入式软件开发&#xff0c;非科班专业必须掌握的基本计算机知识 核心知识点&#xff1a;数据表示和运算、存储系统、指令系统、总线系统、中央处理器、输入输出系统 这一部分主要讲解了CPU的组成和扩容、CPU与存储器&#xff08;主存、辅存、缓存&#xff09;的连接 一 存储…

C++笔记——第十六篇 异常

目录 1.C语言传统的处理错误的方式 2. C异常概念 3. 异常的使用 3.1 异常的抛出和捕获 在函数调用链中异常栈展开匹配原则 3.2异常安全 4.异常的优缺点 1.C语言传统的处理错误的方式 传统的错误处理机制&#xff1a; 1. 终止程序&#xff0c;如assert&#xff0c;缺陷&a…

飞腾ft2000-麒麟V10-SP1安装Docker、运行gitlab容器

目录 一、安装及配置docker 1、卸载docker相关包及删除相关配置文件 2、安装二进制docker 1.下载软件包 2.解压 3.修改镜像加速地址 4.修改profile文件 5.启动docker 6.docker常用命令 二、安装并启动gitlab镜像 1.安装gitlab镜像 1.查询满足使用需求的gitlab版本 2…

很佩服的一个Google大佬,离职了。。

这两天&#xff0c;科技圈又有一个突发的爆款新闻相信不少同学都已经看到了。 那就是75岁的计算机科学家Geoffrey Hinton从谷歌离职了&#xff0c;从而引起了科技界的广泛关注和讨论。 而Hinton自己也证实了这一消息。 提到Geoffrey Hinton这个名字&#xff0c;对于一些了解过…

使用 Mercury 直接从 Jupyter 构建 Web 程序

动动发财的小手&#xff0c;点个赞吧&#xff01; 有效的沟通在所有数据驱动的项目中都至关重要。数据专业人员通常需要将他们的发现和见解传达给利益相关者&#xff0c;包括业务领导、技术团队和其他数据科学家。 虽然传达数据见解的传统方法&#xff08;如 PowerPoint 演示文…

Oracle SQL优化相关数据项

要掌握SQL调优技术,就需要能读懂SQL语句的执行计划,要想读懂SQL语句的执行计划,不仅需要准确理解SQL语句执行计划中各操作及其含义,还需要准确理解SQL语句执行计划中各数据项的含义。本书第7章中,已经对SQL语句执行计划中各个操作的含义做了详尽的阐述,本章中,我们将对S…

爱普特APT32F110x系列时钟介绍

最近要用APT32F110x做一些开发&#xff0c;顺便学习一下。 APT32F110x 是由爱普特推出的基于平头哥&#xff08;T-Head Microsystems&#xff09;CPU 内核开发的 32 位高性能低成本单片机。 APT32F1104x基于嵌入式 Flash 工艺制造&#xff0c;内部丰富的模拟资源&#xff0c;包…

ShardingJDBC核心概念与快速实战

目录 ShardingSphere介绍 ShardingSphere特点 ShardingSphere简述 ShardingSphere产品区分 ShardingJDBC实战 核心概念 实战 ShardingJDBC的分片算法 ShardingSphere目前提供了一共五种分片策略&#xff1a; 分库分表带来的问题 ShardingSphere介绍 ShardingSphere特…

结合SSE实现实时位置展示与轨迹展示

概述 实时位置与实时轨迹的展示是webgis中非常常见的一个功能&#xff0c;本文结合SSE来实现实现此功能。 SSE简介 SSE是Sever-Sent Event的首字母缩写&#xff0c;它是基于HTTP协议的&#xff0c;在服务器和客户端之间打开一个单向通道&#xff0c;服务端响应的不再是一次性…

车牌输入框 封装 (小程序 vue)

车牌输入框 封装 小程序licenseNumber.jslicenseNumber.jsonlicenseNumber.wxmllicenseNumber.wxss样例 vuevnp-input-box.vuevnp-input.vuevnp-keyboard.vue样例 小程序 licenseNumber.js const INPUT_NUM 8;//车牌号输入框个数 const EmptyArray new Array(INPUT_NUM).fi…

6个「会议议程」实例和免费模板

我们都参加过一些团队会议&#xff0c;在这些会议上&#xff0c;大多数与会者对会议的目的一无所知&#xff0c;而发言者则使讨论偏离轨道。 接下来就是一场真正的灾难了。 你会发现你的团队因为“上述会议”而浪费了很多时间&#xff0c;却没有达到任何目的。 好消息! 一个…

【Python】序列类型②-元组

文章目录 1.元组简介2.元组的定义2.1定义只有一个元素的元组 3.元组的下标访问4.元组的常用方法5.使用in判断是否存在元素6.多元赋值操作 1.元组简介 元组和列表一样可以存放多个,不同数据类型的元素 与列表最大的不同就是:列表是可变的,而元组不可变 2.元组的定义 元组的定义:…