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

网站建设的资金风险seo运营专员

网站建设的资金风险,seo运营专员,南阳网站优化,wordpress 互动插件状态机在QT中是一个很重要的概念,部件可以通过状态去处理相应的操作! 举个例子,以前的做法是,鼠标点击一个矩形,通过获取到鼠标按下状态后,在槽函数中处理相应操作,而这些操作是放在鼠标事件槽…

状态机在QT中是一个很重要的概念,部件可以通过状态去处理相应的操作!

举个例子,以前的做法是,鼠标点击一个矩形,通过获取到鼠标按下状态后,在槽函数中处理相应操作,而这些操作是放在鼠标事件槽函数中处理的,不是很好;

使用状态机的话,可以将这些操作封装在部件本身里面,通过设置不同的状态去处理不同的的事情,很好的避开了耦合性!

一、状态机

在Rectangle中有一个state属性,标识当前部件的状态;

在通过states: [ ] 给部件声明一个一个状态,即可在这些状态内部出处理操作;

例如:

定义了三个状态,分别是,normal,mouse_press,mouse_release

并且在mouse_press状态中处理将颜色设置为red,宽度设置为300;

在mouse_release状态中处理将颜色设置为blue,高度设置为300;

states: [                           State {                         name: "normal"              PropertyChanges {           target: root            color: "black"          }                           },                              State {                         name: "mouse_press"         PropertyChanges {           target: root            color: "red"            width: 300              }                           },                              State {                         name: "mouse_release"       PropertyChanges {           target: root            color: "blue"           height: 300             }                           }                               
]

之后只需要设置部件的  state  矩形即可进去相应的状态;

例如:state = "mouse_press"

可以通过鼠标点击切换状态:

MouseArea {                                    anchors.fill:  parent                      onPressed: {                               root.state = "mouse_press"             }                                          onReleased: {                              root.state = "mouse_release"           }                                          
}                  

代码:

// 状态机的使用                                                                     
// 可通过设置相应的状态去调整某些属性值,或者其他操作                                                  
Rectangle {                                                                   id: root                                                                  width: 200                                                                height: 100                                                               state: "normal"                                                           states: [                                                                 State {                                                               name: "normal"                                                    PropertyChanges {                                                 target: root                                                  color: "black"                                                }                                                                 },                                                                    State {                                                               name: "mouse_press"                                               PropertyChanges {                                                 target: root                                                  color: "red"                                                  width: 300                                                    }                                                                 },                                                                    State {                                                               name: "mouse_release"                                             PropertyChanges {                                                 target: root                                                  color: "blue"                                                 height: 300                                                   }                                                                 }                                                                     ]                                                                         MouseArea {                                                               anchors.fill:  parent                                                 onPressed: {                                                          root.state = "mouse_press"                                        }                                                                     onReleased: {                                                         root.state = "mouse_release"                                      }                                                                     }                                                                                                                                                
}                                                                             

运行效果

二、动画

以下介绍项目中比较常用的动画用法!

1. Transition

通过transition可处理状态,根据不同状态切换处理不一样的动画效果;

继续在上面代码中添加如下动画效果代码;

ColorAnimation {target: root        // 目标idduration: 1000        // 处理时间为1秒
}
// 颜色切换时的动画效果                                                           
transitions: [                                                          Transition {                                                        from: "mouse_press"                                             to: "mouse_release"                                             ColorAnimation {                                                target: root                                                duration: 1000                                              }                                                               NumberAnimation {                                               properties: "width"                                         from: 300  // 确保与mouse_press状态的宽度一致                         to: 200    // 回到normal状态的宽度或您希望的其他值                         duration: 1000                                              }                                                               },                                                                  Transition {                                                        from: "mouse_release"                                           to: "mouse_press"                                               ColorAnimation {                                                target: root                                                duration: 1000                                              }                                                               NumberAnimation {                                               properties: "height"                                        from: 300  // 或当前width值                                     to: 100                                                     duration: 1000                                              }                                                               }                                                                   
]                                                                    

运行效果

2. PropertyAnimation 与 NumberAnimation

PropertyAnimation 是设置特殊属性,例如color等非数值的属性;
NumberAnimation 是设置数值类属性;

prorerties 设置需要操作的属性名字;

from 设置起始数值

to 设置目标数值

duration 设置处理时常

target 设置处理的目标id

最后通过.start()  方法启动动画;

代码:

    // 动画                                    
Rectangle {                                  id: flashingblob                         width: 100                               height: 50                               color: "yellow"                          MouseArea {                              anchors.fill: parent                 onClicked: {                         // 通过start()方法开启动画效果             animateColor.start()             animateWidth.start()             animateY.start()                 }                                    }                                        // 属性                                    // 将颜色设置为绿色,2s                           PropertyAnimation {                      id: animateColor                     target: flashingblob                 properties: "color"  from: "yellow"                to: "green"                          duration: 2000                       }                                        // 数值                                    // 将宽度由100改为300,1s                       NumberAnimation {                        id: animateWidth                     target: flashingblob                 properties: "width"                  from: 100                            to: 300                              duration: 1000                       }                                        // 数值                                    // 将y由10改为100,1s                         NumberAnimation {                        id: animateY                         target: flashingblob                 properties: "y"                      from: 10                             to: 100                              duration: 1000                       }                                        
}                                            

运行效果

3. PropertyAnimation

立刻执行的动画

通过后面加上 on 关键字,标记需要处理的属性是什么

PropertyAnimation on x        需要处理的是x属性

to 设置目标数值

duration 设置处理时常

代码:

Rectangle {                       id: rect                      width: 100                    height: 100                   color: "red"                  PropertyAnimation on x {      to: 100                   duration: 1000            }                             PropertyAnimation on height { to: 300                   duration: 1000            }                             PropertyAnimation on color {  to: "green"               duration: 1000            }                             
}                                

运行效果

完!

http://www.dtcms.com/wzjs/274351.html

相关文章:

  • win10系统做mac系统下载网站游戏网站交换友情链接
  • asp做网站缺点百度云搜索引擎
  • 南通网站快照优化公司网站怎么才能被百度收录
  • 深圳好的网站建设公司排名网址收录平台
  • 如何做qq钓鱼网站百度seo怎么优化
  • 商城小程序开发发河南网站排名优化
  • 开个网站做英语培训查询网官网
  • 杭州seo排名收费站群优化公司
  • 云南建投第十建设有限公司网站做一个电商平台大概需要多少钱
  • 网络推广图片seo文章外包
  • 化妆品网站内容规划什么是网络营销平台
  • 免费网站建设公司代理广东省广州市佛山市
  • 深圳网站设计深圳网站建设深圳网络营销的公司哪家好
  • 广告公司网站建设方案苏州百度
  • 商务网站建设服务商强化防疫指导
  • 手机网站建设liedns竞价托管代运营公司
  • 做网站用dw还是vs地推团队联系方式
  • 做网站客户不给钱怎么办网站收录排名
  • 详情页模板怎么做沈阳专业seo
  • 源码建站教程百度推广是什么意思
  • 聊城专业做网站的公司百度网站名称及网址
  • 公司做直销网站网站建站模板
  • 响应式网站 英文河源市企业网站seo价格
  • 网站开发合同验收百度一下电脑版
  • 如何建设数据库搜索网站重庆网络推广外包
  • 网站开发常用js函数信息流投放
  • 公司网站维护怎么做软文网站推广法
  • 做网站的备案资料网页设计个人网站
  • nodejs做网站还是app自己怎么优化网站
  • 网站建设如何做用户名密码百度关键词搜索热度