QML中你所不知道的state

QML中你所不知道的state

       最后一次写QML已经是2010年了,最近由于产品需要,重拾QML。之前nokia给我们培训QML的时候,对于state这个概念理解的不是很透彻。最近在做产品前期的QML热身,发现QML中的state有一种神奇的功能:历史记忆效应

       state核心就是体现了一个状态机的原理,处在某一状态去改变某些属性以达到目的。关于state如何使用的我这里就不说了,看看nokia的QML文档就知道state如何使用。我这里主要讲讲state的历史记忆效应。

从代码开始入手说起:

import QtQuick 1.0

Rectangle {
    width: 360
    height: 360
    color: "#E4F3F9"

    Rectangle{

        id: innerRec
        width: 60
        height: 30
        color: "#59A72C"
        state: "pre"

        anchors.centerIn: parent

        Text {
            id: txt
            anchors.centerIn: parent
            text: "Hello QML"
        }

        MouseArea{
            anchors.fill: parent

            onClicked: if (innerRec.state == "pre")innerRec.state = "tag";else innerRec.state = "pre"

        }

        states: [
            State {
                name: "tag"
                PropertyChanges {
                    target: innerRec;
                    color: "#5CB4DA"
                }
                PropertyChanges {
                    target: txt;
                    text: "Hello Qt"
                }
            }
        ]

    }
}

当我们第一次点击巨型区域的时候,该区域会变色,并字体变为“Hello Qt”。按照设计在点击一次恢复到原始状态,也就是“Hello QML”包括颜色。

比较正常的思维就是在点击一次通过priorityChange把颜色以及字体更改回去。

其实,不用。只需要把state属性更改为原始的“pri”就可以。因为每个state,包括原始的state,都会将当前QML对象的属性记录下来,这些属性包括颜色,文字,大小等等。

所以,上面的代码就能实现不断点击不断交替切换的效果。

效果如下:

时间: 2024-10-30 09:04:38

QML中你所不知道的state的相关文章

你所不知道的关于网管的危险做法

  你所不知道的关于网管的危险做法 网络管理员是指向社会公众开放的营业性上网服务提供场所里的管理员.Jeff Dray 最近经过对IT行业的深入调查研究,通过总结和分析针对IT行业列出了一份类别名单.在这里,他定义了七类最不安全的网络管理员.如果你是一名网络管理员,并且已经意识到工作中还存在着不足,看看你属于名单中的哪一类? 大多数网络管理员对工作游刃有余,并且可以在一个具有高度挑战和技术难度的任务中,使工作顺利进行.然而,有时他们中的某些人会变得很难缠,并会阻碍事情的顺利进行.所以,我定义了一

【干货合集】你所不知道的蚂蚁技术系列之(一):系统设计、性能优化、运维

8月30-31日20:00-21:30,一场别开生面的技术大会-- "蚂蚁金服&阿里云在线金融技术峰会"将在线举办.本次将聚焦数据库.应用架构.移动开发.机器学习等热门领域,帮助金融业技术开发者深入解析互联网应用的前沿应用与技术实践. 蚂蚁金服&阿里云在线金融技术峰会专题:https://yq.aliyun.com/activity/109 峰会统一报名链接:http://yq.aliyun.com/webinar/join/38 2015双11,蚂蚁金服旗下支付宝共完

【干货合集】你所不知道的蚂蚁技术系列之(二):数据、Docker、测试与无线网络技术

8月30-31日20:00-21:30,一场别开生面的技术大会-- "蚂蚁金服&阿里云在线金融技术峰会"将在线举办.本次将聚焦数据库.应用架构.移动开发.机器学习等热门领域,帮助金融业技术开发者深入解析互联网应用的前沿应用与技术实践. 蚂蚁金服&阿里云在线金融技术峰会专题:https://yq.aliyun.com/activity/109 峰会统一报名链接:http://yq.aliyun.com/webinar/join/38 2015双11,蚂蚁金服旗下支付宝共完

【干货合集】你所不知道的蚂蚁技术系列之(三):咻红包、人脸识别、人工智能、金融技术

8月30-31日20:00-21:30,一场别开生面的技术大会-- "蚂蚁金服&阿里云在线金融技术峰会"将在线举办.本次将聚焦数据库.应用架构.移动开发.机器学习等热门领域,帮助金融业技术开发者深入解析互联网应用的前沿应用与技术实践. 蚂蚁金服&阿里云在线金融技术峰会专题:https://yq.aliyun.com/activity/109 峰会统一报名链接:http://yq.aliyun.com/webinar/join/38 2015双11,蚂蚁金服旗下支付宝共完

你所不知道的CSS滤镜技巧与细节

本文主要介绍 CSS 滤镜的不常用用法,希望能给读者带来一些干货! OK,下面直接进入正文.本文所描述的滤镜,指的是 CSS3 出来后的滤镜,不是 IE 系列时代的滤镜,语法如下,还未接触过这个属性的可以先简单到 MDN - filter 了解下: {      filter: blur(5px);      filter: brightness(0.4);      filter: contrast(200%);      filter: drop-shadow(16px 16px 20px 

你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧

原文:你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧 目前SQL Server数据库作为微软一款优秀的RDBMS,其本身启动的时候是很少出问题的,我们在平时用的时候,很少关注起启动过程,或者很少了解其底层运行过程,大部分的过程只关注其内部的表.存储过程.视图.函数等一系列应用方式,而当有一天它运行的正常的时候突然启动不起来了,这时候就束手无策了,能做的或许只能是重装.配置.还原等,但这一个过程其实是一个非常耗时的过程,尤其当我们面对是庞大的生产库的时候,

zz疯转:云计算,你所不知道的真相

问题描述 疯转:云计算,你所不知道的真相作者:打死我也得说云计算已经成为不可逆转的产业趋势,云计算概念的火热,不仅让IT人员言必称精通云计算的专家,很多企业的董事长.总经理都亲自过问公司的信息化建设,推动公司转型成云计算的云公司.可是,关于云计算的真相,你真的知道多少?快快了解以下真相,让你成为小伙伴心目中真正的云计算专家吧!否则,千万别给别人说你懂,不然装B代价惨重,nozuonodie啊!(1)云服务商动辄号称99.9%以上的可用性,其实理论上都难以达到国内外云服务提供商几乎都号称自己能提供

你所不知道的陨石生意链:跨国交易疯狂 缺乏法律规范

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; [i黑马导读]2月15日,一颗陨石在俄罗斯车里雅宾斯克上空爆炸,目前已有上千人在这次"飞来横祸"中受伤.灾难中,有人受伤,也有人受益,据中国网报道,俄罗斯陨石坠落事件吸引了世界各地的陨石收藏爱好者,一家著名的购物网站上与"陨石"相关的商品超过1万件,最便宜的只要1元,贵的标价6000万元.黑马哥今天就为您摘录<创业家杂志

揭秘你所不知道的百度知道

       "有问题,问百度知道!"如今这已成为越来越多的人在遇到工作.生活中各种大事小情时的首选.然而,对于天天帮助大家的百度知道,广大网友又了解多少呢.近日,百度知道推出了一个全新的项目--<知道大数据>,以期通过对百度知道的全方位数据展现,让网友们可以更深入地体会到百度知道的无所不能.作为整个项目的开山之作,第一期内容"你所不知道的百度知道"已经新鲜出炉,通过各种精准的数据,百度知道的庐山真面目开始浮出水面. 自2005年成立以来,百度知道已经走