当前位置: 首页 > news >正文

QML state详解

1.state简介

changes(list<Change>):保存当前State下的多个Change对象,比如PropertyChanges、StateChangeScript、ParentChange等。
extend(string):表示该状态要在哪个State的基础上进行扩展,当一个状态要在另一个状态基础上进行扩展时,它将继承该另一个状态的所有changes。
name (string ):此属性保存状态的名称,每个状态在其项目内应具有唯一的名称。
when(bool ):该属性在应用状态成立时生效。应该将其设置为一个表达式,您希望何时应用状态时使该表达式的计算结果为true。

当一个对象的状态发生改变,那么该对象展示给用户的效果也会相应发生改变,所以state支持了多个不同change对象供我们使用,有如下几种:

  • PropertyChanges: 改变对象的属性值
  • StateChangeScript:运行脚本,比如function函数
  • ParentChange: 改变对象的父类对象.并且改变对象在父类对象下的坐标xy,宽高等属性
  • AnchorChanges: 改变对象的anchor值

2.示例

示例1:定义了两种状态,Rectangle中,鼠标按下时显示pressed状态,松开鼠标时显示released状态。

Window {visible: truewidth: 400height: 400title: qsTr("Hello World")Rectangle  {id: rectwidth:  100height:  100state: "pressed";MouseArea  {id:  mouseAreaanchors.fill:  parentonPressed: {rect.state = "pressed";}onReleased: {rect.state = "released";}}states:  [State  {name:  "pressed"PropertyChanges  {target:  rect;color:  "red"}},State  {name:  "released"PropertyChanges  {target:  rect;color:  "yellow"}}]}
}

示例2:鼠标按下的时候,rect隐藏。

Window {visible: truewidth: 400height: 400title: qsTr("Hello World")Rectangle {id:  rectwidth:  100height:  100color:  "red"MouseArea {id:  mouseAreaanchors.fill:  parent}states:State {name:  "hidden"when:  mouseArea.pressedPropertyChanges {target:  rectopacity:  0}}}
}

http://www.lryc.cn/news/21757.html

相关文章:

  • 一起Talk Android吧(第五百零六回:如何调整组件在约束布局中的角度)
  • 微信投票-课后程序(JAVA基础案例教程-黑马程序员编著-第七章-课后作业)
  • duboo+zookeeper分布式架构入门
  • 黑盒测试用例设计方法-等价类划分法
  • 4.OCR文本识别Connectionist Temporal Classification(CTC)算法
  • 误删了Ubuntu/Linux的一些默认用户目录怎么办?
  • ArXiv简介以及论文提交
  • pytorch学习
  • 【OC】块初识
  • 3-2 创建一个至少有两个PV组成的大小为20G的名为testvg的VG
  • 【密码学】 一篇文章讲透数字证书
  • Linux 操作系统原理 — 内存管理 — 虚拟地址空间(x86 64bit 系统)
  • C语言深入知识——(2)指针的深入理解
  • Git使用笔记
  • 数据库管理-第五十八期 倒腾PDB(20230226)
  • 我看谁还敢说不懂git
  • Scratch少儿编程案例-算法练习-实现加减乘除练习题
  • 【离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计】
  • python网络数据获取
  • [Datawhale][CS224W]图机器学习(六)
  • aws ecr 使用golang实现的简单镜像转换工具
  • 【20230225】【剑指1】分治算法(中等)
  • 「JVM 高效并发」Java 线程
  • ADAS-可见光相机之Cmos Image Sensor
  • 【ESP 保姆级教程】玩转emqx MQTT篇③ ——封装 EmqxIoTSDK,快速在项目集成
  • Python自动化测试面试题-编程篇
  • CIT 594 Module 7 Programming AssignmentCSV Slicer
  • 链路追踪——【Brave】第一遍小结
  • Vision Transformer(ViT)
  • 104-JVM优化