在 QML 中,属性是一种非常重要的元素,它用于存储和表示对象的状态信息。以下是关于 QML 属性的详细说明。

 1 import QtQuick 2.15
2
3 Item {
4 //1、
5 // 用于存储整数
6 property int width: 100
7 // 用于存储浮点数
8 property real price: 10.5
9 // 存储二维点信息
10 property point position: Qt.point(10,20)
11 // 存储尺寸信息
12 property size itemSize: Qt.size(50,50)
13 // 存储URL信息
14 property url imageUrl: "http://example.com/image.jpg"
15
16 //当声明一个属性时,可以为其指定一个默认值。如果没有指定,基本类型的默认值通常为零值(例如,int 为 0,string 为空字符串
17 // bool 为 false),对象类型的默认值为 null。
18
19
20 property color backgroundColor: "red"
21 property var customObject: SomeCustomType {}
22 // 声明一个整数类型的自定义属性
23 property int myIntegerProperty: 42;
24 // 声明一个字符串类型的自定义属性
25 property string myStringProperty: "Hello, QML";
26 // 声明一个布尔类型的自定义属性
27 property bool myBooleanProperty: true;
28 // 声明一个颜色类型的自定义属性
29 property color myColorProperty: "blue";
30 // 声明一个自定义 QML 类型的属性,这里就会发现,属性的类型也可以是QML的基本组件类型
31 property Rectangle myRectangleProperty: Rectangle {
32 width: 50;
33 height: 50;
34 color: "red";
35 }
36 // 声明一个 JavaScript 对象类型的属性
37 property var myJavaScriptObjectProperty: {
38 "name": "John",
39 "age" : "30",
40 };
41 // 声明一个列表类型的自定义属性
42 property list<int> myIntegerListProperty: [1, 2, 3, 4, 5];
43
44
45 // 2、
46 //当声明一个属性时,可以为其指定一个默认值。如果没有指定,基本类型的默认值通常为零值(例如,int 为 0,string 为空字符串
47 // bool 为 false),对象类型的默认值为 null。
48 property int count // 默认值为 0
49 property string name: "Default Name" // 显式设置默认值
50
51
52 //3、
53 //可写属性:默认情况下,使用 property 关键字声明的属性是可写的,可以在代码中修改其值;
54 //只读属性:可以使用 readonly 关键字声明只读属性,这样属性的值在声明后不能被修改。
55 //value1可写
56 property int value1: 10
57 //fixedValue只读
58 readonly property int fixedValue: 50
59 Component.onCompleted: {
60 value1= 20; // 可以修改 value1 属性的值
61 }
62
63
64 //4、属性的别名
65 //属性别名允许一个属性引用另一个属性,使用 alias 关键字声明。
66 //这样可以方便地将内部属性暴露给外部,或者在不同的对象之间共享属性。
67 property int value: 100
68 // 这里声明了aliasValue 是 value 的别名,以后就可以用aliasValue来代替value 使用
69 property alias aliasValue: value
70
71
72 }

【QML item】item中属性应用的更多相关文章

  1. VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别

    在VB中,属性是可以有参数的,而VBA中属性使用参数非常常见.比如最常用的:Worksheet.Range("A1:A10")  VB的语法,使用参数的不一定是方法,也有可能是属性 ...

  2. [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  3. 为什么Nhibernate中属性和方法必须Virtual的

    如果你曾经用过NHibernate 2.0或者更高的版本,那您一定碰到过下面的错误:NHibernate.InvalidProxyTypeException: The following types ...

  4. qml学习:对象和属性

    qml学习:对象和属性 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参考文档<<Qt及Qt Quick开发实战精解.pdf>> ...

  5. [Tips]ASP.NET MVC 发布到服务器后Model中属性相关的Attribute失效

    Asp.net MVC4 开发的项目,发布到真实环境环境后Model中的一个属性设置的了Attribute,但是这些Attribute都失效. 经过对比和坚持代码发现控制长度的Attribute使用错 ...

  6. 坑爹的vector iterators incompatible错误(VS中属性页-->C/C++-->代码生成-->>运行库)

    之前一直被这个错误折磨着,就是不知道问题在那,后来找了很多资料,大概都是说这是因为多个线程同时操作vector的问题(参考这里).可是我这里的代码并没有问题,因为同样的代码在别的解决方案中已经成功运行 ...

  7. <mate>标签中属性/值的各个意思

    <mate>标签中属性/值的各个意思 HTML 4 name 属性 1.<mate name="author" content="" /> ...

  8. Flex的 Event中属性currentTarget与target的区别

    Flex的 Event中属性currentTarget与target的区别 1.区别 (1)currentTarget是事件的处理对象(event processor) (2)target是事件的调用 ...

  9. 【JVM虚拟机】(7)---深入理解Class中-属性集合

    #[JVM虚拟机](7)---深入理解Class中-属性集合 之前有关class文件已经写了两篇博客: 1.[JVM虚拟机](5)---深入理解JVM-Class中常量池 2.[JVM虚拟机](6)- ...

  10. C# 求链表 list 中 属性的 最大值 最小值

    获取链表List中对象属性最大值最小值(Max,Min)的方法: 1.创建一个类,类中有一个属性A /// <summary> /// 用于测试属性的类 /// </summary& ...

随机推荐

  1. 数栈产品预告丨您的指标管理平台——EasyIndex即将上线

    ​  一.写在前面 2016年,数栈开始正式投入研发,发展至今,已经拥有了:实时开发.离线开发.算法开发这些开发平台:数据资产.数据质量这些资产平台:以及数据服务.智能标签这些服务平台,这些不同类型的 ...

  2. 开源交流丨批流一体数据集成工具ChunJun同步Hive事务表原理详解及实战分享

    原文链接:批流一体数据集成工具ChunJun同步Hive事务表原理详解及实战分享 课件获取:关注公众号__ "数栈研习社",后台私信 "ChengYing"__ ...

  3. html背景图片居中

    * { margin: 0; padding: 0 } .box { width: 100%; height: 1728px; border: 1px solid rgba(0, 128, 0, 1) ...

  4. VKProxy新增CORS设置和http响应缓存

    VKProxy 是使用c#开发的基于 Kestrel 实现 L4/L7的代理(感兴趣的同学烦请点个github小赞赞呢) 目前新添加了如下功能 http响应缓存 Memory Disk Redis C ...

  5. 4G CAT1模块的智慧农业远程监控案例

    1.行业背景 智慧农业是农业生产的高级阶段,是集新兴的互联网.移动互联网.云计算.边缘计算和物联网技术为一体,依托部署农业生产现场的各种传感节点(环境温湿度.土壤水分.二氧化碳.图像等)和无线通信网络 ...

  6. 深度学习模型在C++平台的部署

    一.概述   深度学习模型能够在各种生产场景中发挥重要的作用,而深度学习模型往往在Python环境下完成训练,因而训练好的模型如何在生产环境下实现稳定可靠的部署,便是一个重要内容.C++开发平台广泛存 ...

  7. 前端开发系列112-工程化篇之Yeoman脚手架工具核心机制

    这篇文章我们将接着探讨Yeoman这个脚手架工具内部的核心机制,主要包括以下内容 ❏ Yeoman脚手架工具的价值讨论 ❏ generator[生成器]的内部结构 ❏ generator[生成器]的项 ...

  8. 无法打开包括文件: “QWidget”: No such file or directory

    简介 我出现这个问题是因为两个环境不一样,一个是笔记本的开发环境,要给是PC的开发环境 处理方案 vs 链接器 输入 附加依赖项 增加 Qt5Widgetsd.lib Qt5OpenGLd.lib Q ...

  9. 【x86】PC、服务器中的一些基本概念

    架构 现代 x86 CPU 在功能上已经非常接近 SoC,尤其是移动平台(如 U 系列.H 系列)基本可以看作 SoC.但在台式机和服务器领域,出于扩展性和高性能需求,它通常还不能被完全称作 SoC. ...

  10. 一个遵循 Material Design 设计规范、开源免费的 Blazor 组件库

    前言 今天大姚给大家分享一个遵循 Material Design 设计规范.开源免费(MIT License)的 Blazor 组件库:MASA Blazor. Blazor 介绍 Blazor 是基 ...