Kdab QML (part9)自由缩放时钟

news2025/1/13 10:18:12

文章目录

  • Kdab QML (part9)自由缩放时钟
    • 代码
    • 详细解释
    • 运行截图

Kdab QML (part9)自由缩放时钟

代码

import QtQuick 2.15
import QtQuick.Window 2.15

Window {
    id: root
    width: 500
    height: 500
    visible: true
    color: "lightgrey"
    title: qsTr("Hello World")

    Item {
        property int _minSide: Math.min(root.width,root.height)
        x: 10 + (root.width - _minSide)/2
        y: 10 + (root.width - _minSide)/2
        width: _minSide - 20
        height: _minSide - 20

        scale: Math.min(width / background.sourceSize.width,
                        height / background.sourceSize.height)
        transformOrigin: Item.TopLeft

        Image {
            id: background
            source: "background.png"

        }

        Image {
            id: smallArm

            source: "smallArm.png"
            x:background.width/2 - width/2
            y:background.height/2 - 914

            transform: Rotation {
                origin.x: smallArm.width/2
                origin.y: 914

                RotationAnimation on angle {
                    from: 0
                    to: 360*2
                    duration: 60000
                    loops:Animation.Infinite
                }
            }

        }
        //--> slide
        Image {
            // The 1255 is the anchor point of the arm, measured in the file itself
            id: largeArm
            source: "largeArm.png"
            x: background.width/2 - width/2
            y: background.height/2 - 1255

            transform: Rotation {
                origin.x: largeArm.width/2
                origin.y: 1255
                angle: 90 // Likely a calculation from other properties

                //--> hide
                // Anngle above is just for the slides :-)
                RotationAnimation on angle {
                    from:0
                    to: 360*24 // 24 hours in a day
                    duration: 60000 // run through a complete day in one minute.
                    loops: Animation.Infinite
                }
                //<-- hide
            }
        }
        //<-- slide
    }
}

详细解释

这是一个使用QtQuick 2.0编写的QML文件,用于创建一个图形界面元素。下面是每一行的解释:

  1. /*************************************************************************: 这是一个注释,通常用于提供关于代码版权和许可的信息。

  2. import QtQuick 2.0: 导入QtQuick 2.0模块,使得该QML文件可以使用QtQuick的功能和元素。

  3. Rectangle {: 开始定义一个矩形元素。

  4. id: root: 给这个矩形元素指定一个ID,以便在其他地方引用它。

  5. color: "lightgrey": 设置矩形的背景颜色为浅灰色。

  6. width: 500: 设置矩形的宽度为500个单位。

  7. height: 500: 设置矩形的高度为500个单位。

  8. Item {: 在矩形内部定义一个Item元素,这将是一个容器。

  9. property int _minSide: Math.min(root.width, root.height): 定义一个名为_minSide的属性,该属性计算并存储矩形的宽度和高度之间的较小值。

  10. x: 10 + (root.width - _minSide)/2: 设置Item元素的X坐标,将其放置在矩形内居中,但留出10个单位的边距。

  11. y: 10 + (root.height - _minSide)/2: 设置Item元素的Y坐标,将其放置在矩形内居中,但留出10个单位的边距。

  12. width: _minSide - 20: 设置Item元素的宽度,使其比矩形较小的一边小20个单位。

  13. height: _minSide - 20: 设置Item元素的高度,使其比矩形较小的一边小20个单位。

  14. scale: Math.min(width / background.sourceSize.width, height / background.sourceSize.height): 设置Item元素的缩放比例,以使背景图像适应Item元素的大小,同时保持纵横比。

  15. transformOrigin: Item.TopLeft: 设置变换的原点为左上角。

  16. Image {: 在Item元素内部定义一个Image元素,用于显示图像。

  17. id: background: 给该Image元素指定一个ID。

  18. source: "background.png": 设置图像的来源文件为"background.png"。

  19. Image {: 在Item元素内部定义另一个Image元素,这将用于显示另一图像。

  20. id: smallArm: 给该Image元素指定一个ID。

  21. source: "smallArm.png": 设置图像的来源文件为"smallArm.png"。

  22. x: background.width/2 - width/2: 设置图像的X坐标,使其水平居中在Item元素内。

  23. y: background.height/2 - 914: 设置图像的Y坐标,其中914是图像的锚点(在文件本身中测量得到的)。

  24. transform: Rotation {: 在smallArm Image元素内部定义一个Rotation元素,用于旋转图像。

  25. origin.x: smallArm.width/2: 设置旋转的原点X坐标为图像宽度的一半。

  26. origin.y: 914: 设置旋转的原点Y坐标为914。

  27. RotationAnimation on angle {: 在Rotation元素内部定义一个RotationAnimation元素,用于对图像进行角度旋转动画。

  28. from: 0: 设置动画的起始角度为0度。

  29. to: 360*2: 设置动画的结束角度为720度,表示两个完整的旋转周期。

  30. duration: 60000: 设置动画的持续时间为60000毫秒(即60秒)。

  31. loops: Animation.Infinite: 设置动画循环次数为无限循环。

  32. }: 结束角度旋转动画的定义。

  33. }: 结束smallArm Image元素的定义。

  34. Image {: 在Item元素内部定义另一个Image元素,用于显示另一图像,这是大臂的图像。

  35. id: largeArm: 给该Image元素指定一个ID。

  36. source: "largeArm.png": 设置图像的来源文件为"largeArm.png"。

  37. x: background.width/2 - width/2: 设置图像的X坐标,使其水平居中在Item元素内。

  38. y: background.height/2 - 1255: 设置图像的Y坐标,其中1255是图像的锚点(在文件本身中测量得到的)。

  39. transform: Rotation {: 在largeArm Image元素内部定义一个Rotation元素,用于旋转图像。

  40. origin.x: largeArm.width/2: 设置旋转的原点X坐标为图像宽度的一半。

  41. origin.y: 1255: 设置旋转的原点Y坐标为1255。

  42. angle: 90: 设置图像的初始旋转角度为90度。

  43. RotationAnimation on angle {: 在Rotation元素内部定义一个RotationAnimation元素,用于对图像进行角度旋转动画。

  44. from: 0: 设置动画的起始角度为0度。

  45. to: 360*24: 设置动画的结束角度为8640度,表示一天内的完整旋转。

  46. duration: 60000: 设置动画的持续时间为60000毫秒(即60秒),使得图像在一分钟内完成一天的旋转。

  47. loops: Animation.Infinite: 设置动画循环次数为无限循环。

  48. }: 结束角度旋转动画的定义。

  49. }: 结束largeArm Image元素的定义。

  50. }: 结

运行截图

image-20230824170302608## 运行截图

[外链图片转存中…(img-IS7gRfti-1692867979984)]

image-20230824170336747

每篇附一张高清壁纸,记得点赞收藏哦
在这里插入图片描述

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

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

相关文章

中央处理器(CPU):组成、指令周期、数据通路、控制方式、控制器、指令流水线,补充(多处理器系统、硬件多线程)

中央处理器&#xff08;CPU&#xff0c;Central Processing Unit&#xff09;&#xff0c;计算机控制和运算的核心&#xff0c;是信息处理和程序运行的执行单元。 CPU主要功能&#xff1a;处理指令、执行操作、控制时间、处理中断、处理数据。 其中&#xff0c;处理指令、执行…

vue中利用Echarts实现飞线(飞机)地图样式

实现效果 思想&#xff1a;主要是三个要素&#xff1a;1 地图样式 2散点图 3飞线 组合配置后就形成以下效果。 第一步&#xff1a;vue中引入Echarts npm install vue-echarts echarts第二步&#xff1a;导入代码 代码已经写好&#xff0c;直接引入运行就好了&#xff0c;关键…

NO.02 依赖注入

目录 1、前言 2、两种依赖注入的方式 2.1 依赖注入之setter注入 2.2 依赖注入之构造器注入 3、依赖注入之特殊值处理 3.1 字面量赋值 3.2 null值赋值 3.3 XML实体&#xff08;<&#xff09; 4、完整测试类 1、前言 依赖注入就是为类的属性赋值&#xff0c;在我们获…

卷积神经网络实现猴痘疾病图像分类 - P4

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;Pytorch实战 | 第P4周&#xff1a;猴痘病识别&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子 目录…

Python数据分析实战-对列表里面的元素绘制词云图(附源码和实现效果)

实现功能 词云也叫文字云&#xff0c;是一种可视化的结果呈现&#xff0c;原理就是统计文本中高频出现的词&#xff0c;将结果生成一张图片&#xff0c;直观的获取数据的重点信息 实现代码 from wordcloud import WordCloud import matplotlib.pyplot as plt# 假设你的字符串…

浅谈大数据智能审计如何助力审计工作

随着互联网大数据的持续发展&#xff0c;大数据审计近年来面对着相等的机遇和挑战。那么&#xff0c;如果利用大数据等相关技术对审计工作作出突出贡献&#xff0c;单位和企业又该从何入手做好大数据审计工作应用&#xff0c;这些都成为每位审计人员将要面临的重要问题。 1. 政…

电机控制软件框架

应用层包括main 主函数模块&#xff0c;ISR 中断处理函数模块、时基Systick 模块和BLDC 应用接口模块&#xff1b;算法层包括BLDC Algorithm 模块和PID control 模块&#xff1b;驱动层&#xff08;Driver layer&#xff09;&#xff1a;包括GD32Fxx_Standard_peripheral libra…

基于SSM的OA办公系统Java企业人事信息管理jsp源代码MySQL

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于SSM的OA办公系统 系统有1权限&#xff1a;管理员…

课程项目设计--spring security--认证管理功能--宿舍管理系统--springboot后端

写在前面&#xff1a; 还要实习&#xff0c;每次时间好少呀&#xff0c;进度会比较慢一点 本文主要实现是用户管理相关功能。 前文项目建立 文章目录 验证码功能验证码配置验证码生成工具类添加依赖功能测试编写controller接口启动项目 security配置拦截器配置验证码拦截器 …

台积电美国厂施工现场混乱,真令人头痛 | 百能云芯

近日&#xff0c;英伟达公司的财报表现异常亮眼&#xff0c;摩根士丹利不仅点名了台积电成为最大的受益者&#xff0c;还预测每售出一颗H100英伟达芯片&#xff0c;台积电就能获得900美元的利润。然而&#xff0c;美国媒体却曝出了一则不利的消息&#xff0c;称美国亚利桑那州的…

Hbase文档--架构体系

阿丹&#xff1a; 基础概念了解之后了解目标知识的架构体系&#xff0c;就能事半功倍。 架构体系 关键组件介绍&#xff1a; HBase – Hadoop Database&#xff0c;是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;利用HBase技术可在廉价PC Server上搭建起…

vue3 vite使用 monaco-editor 报错

报错&#xff1a;Unexpected usage at EditorSimpleWorker.loadForeignModule 修改配置&#xff1a; "monaco-editor-webpack-plugin": "^4.2.0",删除不用 版本&#xff1a; "monaco-editor": "^0.28.1", 修改如下&#xff1a; opti…

Python“牵手”虾皮(Shopee)商品详情API接口运用场景及功能介绍,虾皮API接口申请指南

虾皮&#xff08;Shopee&#xff09;电商API接口是针对虾皮提供的电商服务平台&#xff0c;为开发人员提供了简单、可靠的技术来与虾皮电商平台进行数据交互&#xff0c;实现一系列开发、管理和营销等操作。其中包括商品详情API接口&#xff0c;通过这个API接口商家可以获取商品…

SLS日志解析配置

分隔符模式 INFO|2023-04-10T11:05:30.12808:00|X.X.X.X|ACCESS_ALLOWED|1 模式&#xff1a;分隔符模式 日志样例&#xff1a;贴文档说明中的样例&#xff0c;或者直接在SLS历史日志里找一行 分隔符&#xff1a;竖线 日志抽取内容Key用文档中说明的变量名 是否接受部分字段&am…

CMIP6中的模式比较计划、CMIP6数据下载、单点降尺度、统计方法的区域降尺度、基于WRF模式的动力降尺度及气候变化、生态、水文等典型案例

CMIP6数据被广泛应用于全球和地区的气候变化研究、极端天气和气候事件研究、气候变化影响和风险评估、气候变化的不确定性研究、气候反馈和敏感性研究以及气候政策和决策支持等多个领域。这些数据为我们理解和预测气候变化&#xff0c;评估气候变化的影响和风险&#xff0c;以及…

Docker容器与虚拟化技术:Harbor私有仓库部署与迁移

目录 一、理论 1.本地私有仓库 2.Harbor 二、实验 1.Docker搭建本地私有仓库 2.docker-compose部署及配置 3.harbor部署及配置 4.登录创建项目 5.在其他客户端上传镜像 6. harbor维护 7.移除 Harbor 服务容器同时保留镜像数据/数据库&#xff0c;并进行迁移 三、问题…

把Android手机变成电脑摄像头

一、使用 DroidCam 使用 DroidCam&#xff0c;你可以将手机作为电脑摄像头和麦克风。一则省钱&#xff0c;二则可以在紧急情况下使用&#xff0c;比如要在电脑端参加一个紧急会议&#xff0c;但电脑却没有摄像头和麦克风。 DroidCam 的安卓端分为免费的 DroidCam 版和收费的 …

服务器数据恢复-服务器RAID6硬盘故障离线的数据恢复案例

服务器数据恢复环境&#xff1a; 服务器中有一组由6块磁盘组建的RAID6磁盘阵列。服务器作为WEB服务器使用&#xff0c;上面运行了MYSQL数据库以及存放了网站代码和其他数据文件。 服务器故障&#xff1a; 在服务器运行过程中该raid6阵列中有两块磁盘先后离线&#xff0c;但是管…

火山引擎DataLeap基于Apache Atlas自研异步消息处理框架

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 字节数据中台DataLeap的Data Catalog系统通过接收MQ中的近实时消息来同步部分元数据。Apache Atlas对于实时消息的消费处理不满足性能要求&#xff0c;内部使用Flin…

Mysql索引、事务与存储引擎 (索引)

一、索引 1、索引的概念&#xff1a; 索引就是一种帮助系统能够更加快速的查找信息的数据结构。 2.索引的作用&#xff1a; ①数据库利用各种快速定位技术&#xff0c;能够大大加快查询速度&#xff0c;这是创建索引的最主要的原因。 ②当表很大或查询涉及到多个表时&#xff0…