首页 > 其他分享 >QML语法

QML语法

时间:2023-12-18 16:46:29浏览次数:20  
标签:24 text focus 语法 QML property 属性

一,基本语法

1、import导入需要使用的模块。类似于C++,include。

2、一个QML文件只能有一个根元素。类似一个QML文件就是自然界的一棵树。

3、元素声明方法:类型{ }

4、元素下定义属性,属性赋值方法: name:value

5、元素可并行,也可嵌套。子元素可用通过父元素id访问它的子元素和属性。

6、一个QML文件下的元素可通过元素的id访问。

7、注释使用//或者/*     */。

二、属性

1、一个属性可用设置一个值,也可用设置与其他属性关联。id为特殊属性,不被设置其他值。

2、自定义属性需要使⽤property修饰符。方法:property    类型    名字:值

3、每个元素都可以提供⼀个属性变化信号操作。方法:on属性名Changed

4、alias关键字允许转发⼀个属性到另⼀个 作⽤域。方法:property alias :

Text {
     // (1) id为特殊属性,不能设置其他值
     id: thisLabel
     // (2) 赋值x,y,设置位置
     x: 24; y: 16
     // (3) 设置height与width属性关联
     height: 2 * width
     // (4) 自定义属性
     property int times: 24
     // (5) property alias使用方法
     property alias anotherTimes: thisLabel.times
     // (6) 设置text属性为times关联
     text: "Greetings " + times
     // (7) 赋值组属性,也可用直接font{family: "UBuntu"; pixelSize: 24}
     font.family: "Ubuntu"
     font.pixelSize: 24
     // (8) KeyNavigation is an attached property
     KeyNavigation.tab: otherLabel
     // (9) 属性值发送改变时信号处理
     onHeightChanged: console.log('height:', height)
     // focus is need to receive key events
     focus: true
     // change color based on focus value
     color: focus?"red":"black"
}

 三、脚本

1、QML与JavaScript是最好的配合。

Text {
  id: label
  x: 24; y: 24
  // custom counter property for space presses
  property int spacePresses: 0
  text: "Space pressed: " + spacePresses + " times"
  // (1) handler for text changes
  onTextChanged: console.log("text changed to:", text)
  // need focus to receive key events
  focus: true
  // (2) handler with some JS
  Keys.onSpacePressed: {
    increment()
  }
  // clear the text on escape
  Keys.onEscapePressed: {
    label.text = ''
  }
  // (3) JavaScript函数
  function increment() {
    spacePresses = spacePresses + 1
  }
}

 

标签:24,text,focus,语法,QML,property,属性
From: https://www.cnblogs.com/wxzhrj/p/17903894.html

相关文章

  • VUE框架指令语法与v-bind实现标签属性内部动态------VUE框架
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • Java基础语法
    一.注释  java中的注释有三种:       1.单行注释    //         2.多行注释    /**/         3.文档注释    /***/二.标识符  1.所有的标识符都应该以字母(A~Z a~z),美元符($),下划线(_)开头   2.首字符之后可以是字母(A......
  • freemarker模板数据解析1--页面语法直接获取
    freemarker模板数据解析1--页面语法直接获取​ 对后端接口传递过来的Map<String,List>类型数据的展示。对于普通Map<String,String>数据,我们很清楚,直接上代码:·接口提供数据:Map<String,String>map=newHashMap<>();map.put("k1","v1");map.put("k2","v2"......
  • 【C++】异常处理 ④ ( 异常接口声明 | 异常接口语法 | 抛出一种类型的异常 | 抛出多种
    文章目录一、异常接口声明1、异常接口引入2、异常接口语法3、抛出一种类型的异常4、抛出多种类型的异常5、抛出任何类型异常-不声明异常接口/声明throw(...)6、不能抛出任何类型异常-声明throw()7、抛出异常类型错误博客总结://1.不会抛出异常voidfun()throw();......
  • java基础语法之一维数组的应用案例
    一:概述在前面已经介绍了一维数组的相关语法知识,下面来讲一下具体案例的实现。二:具体说明<1>数组的遍历数组遍历指的是:获取数组中的每一个元素,我们可以把获取到的元素输出在控制台具体代码和运行截图如下:publicstaticvoidmain(String[]args){//定义数组并初始化......
  • C++和QML混合编程
    一、QML访问C++方法Qt元对象系统中注册C++类,在QML中实例化、访问。C++中实例化并设置为QML上下文属性,在QML中直接使用。      比较:方法1可以使C++类在QML中作为一个数据类型,例如函数参数类型或属性类型,也可以使用其枚举类型、单例等,功能更强大。二、QML访......
  • Linux_3.2 Shell语法
    1循环语句1.1for…in…do…done命令格式:forvarinval1val2val3#类似于枚举do语句1语句2...done示例1,输出a2cc,每个元素一行:foriina2ccdoecho$idone示例2,输出当前路径下的所有文件名,每个文件名一行:forfilein`ls`#$(ls)d......
  • 语法自我回顾
    三大成分以及简单句的构成larry的语法课强调了英语语法中的一个重要概念就是一个句子无非三个成分名词性成分,形容词性成分,副词性成分,这三者遵从形容词性成分修饰名词性成分,副词性成分修饰形容词,副词,动词这样的规则,不仅是最小概念的单词,还是一个五大句型的简单句,又或是主从关系的......
  • Solidity基本语法学习5
    文档:https://solidity-by-example.org/视频教程:https://www.youtube.com/watch?v=xv9OmztShIw&list=PLO5VPQH6OWdVQwpQfw9rZ67O6Pjfo6q-p说明本文内容payable,SendingEther(transfer,send,call),Fallback,Call,DelegateCall,functionselector,CallingOtherC......
  • 多层语法糖嵌套
    装饰器多层语法糖嵌套小练习:##先验证登录##再验证输入的金额---符合数字/余额充足###取款函数里面#defget_balance():##校验登录##校验金额符合数字/余额充足---把金额通过装饰器返回来##拿着你的金额进行提款use_data={'usern......