成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

新手必學 QML入門教程 (3)

移動開發
本章講述的和前兩篇文章不同,本篇是實習一個簡單的動畫。transitions 是用于增加動畫效果的,如果對transitions 感興趣,快來參考本文的資料。

QMLQt推出的Qt Quick技術的一部分,是一種新增的簡便易學的語言。QML是一種陳述性語言,用來描述一個程序的用戶界面:無論是什么樣子,以及它如何表現。

經過前面兩個教程,文字也能顯示,也能處理鼠標事件了,來點動畫吧。

新手必學 QML入門教程 (3)

這個教程實現了當鼠標按住的時候,Hello,World從頂部到底部的一個旋轉過程,并帶有顏色漸變的效果。

完整的源代碼main.qml

  1. import Qt 4.7  
  2.  Rectangle {  
  3.      id: page  
  4.      width: 500; height: 200  
  5.      color: "lightgray"  
  6.      Text {  
  7.          id: helloText  
  8.          text: "Hello World!"  
  9.          y: 30  
  10.          anchors.horizontalCenter: page.horizontalCenter  
  11.          font.pointSize: 24; font.bold: true  
  12.  
  13.          MouseArea { id: mouseArea; anchors.fill: parent }  
  14.          states: State {  
  15.              name: "down"; when: mouseArea.pressed == true  
  16.              PropertyChanges { target: helloText; y: 160; rotation: 180; color: "red" }  
  17.          }  
  18.          transitions: Transition {  
  19.              from: ""; to: "down"; reversible: true  
  20.              ParallelAnimation {  
  21.                  NumberAnimation { properties: "y,rotation"; duration: 500; easing.type: Easing.InOutQuad }  
  22.                  ColorAnimation { duration: 500 }  
  23.              }  
  24.          }  
  25.      }  
  26.      Grid {  
  27.          id: colorPicker  
  28.          x: 4; anchors.bottom: page.bottom; anchors.bottomMargin: 4  
  29.          rows: 2; columns: 3; spacing: 3  
  30.          Cell { cellColor: "red"; onClicked: helloText.color = cellColor }  
  31.          Cell { cellColor: "green"; onClicked: helloText.color = cellColor }  
  32.          Cell { cellColor: "blue"; onClicked: helloText.color = cellColor }  
  33.          Cell { cellColor: "yellow"; onClicked: helloText.color = cellColor }  
  34.          Cell { cellColor: "steelblue"; onClicked: helloText.color = cellColor }  
  35.          Cell { cellColor: "black"; onClicked: helloText.color = cellColor }  
  36.      }  
  37.  } 

除了這個main.qml之外,還有一個Cell.qml也是需要的,和教程(2)中的完全一樣。下面來看一看比起教程(2)的代碼增加出來的內容。

  1. Text{  
  2.          ...  
  3.          states: State {  
  4.              name: "down"; when: mouseArea.pressed == true  
  5.              PropertyChanges { target: helloText; y: 160; rotation: 180; color: "red" }  
  6.          }  
  7.          transitions: Transition {  
  8.              from: ""; to: "down"; reversible: true  
  9.              ParallelAnimation {  
  10.                  NumberAnimation { properties: "y,rotation"; duration: 500; easing.type: Easing.InOutQuad }  
  11.                  ColorAnimation { duration: 500 }  
  12.              }  
  13.          }  
  14.         ...  
  15.      } 

states內嵌于Text之中,可以為Text元素添加多個狀態,現在的這個例子只增加了一個狀態。該狀態的名為為”down”,然后由“when”指 定了什么時候觸發這個狀態。PropertyChanges則指定了哪個元素的哪些屬性會發生什么樣的變化。例子中PropertyChanges利用 “target”指定了id為”helloText”的元素會發生變化,包括其y,rotation,color等屬性。

transitions 是用于增加動畫效果的(如果把transitions這一段代碼刪去,Hello,World的文字也會發生變化,但是看不到中間動畫漸變效果)。同樣可以看到transitions是復數形式,意味著可以添加多個動畫過程。“from”和”to”指明了當前的動畫作用于哪兩個狀態變化之間。 “from”和”to”的參數名來自于State中的”name”屬性。

ParalleAnimation則指定了有多個 有多個動畫并行發生。NumberAnimation用于qreal類型的屬性變化,ColorAnimation則用于顏色變化。更多 Animation請在QML文檔中查找”Animation and Transitions”。

小結:三篇關于QML教程到此結束。不管是文字顯示,還是簡單的動畫效果,相信你可以和諧的去完成,希望本篇文章對你有所幫助。

責任編輯:zhaolei 來源: Qt技術博客
相關推薦

2011-06-16 09:40:53

QML 教程

2011-06-16 09:28:14

Qt QML 教程

2010-07-27 15:53:15

2010-08-02 09:36:22

Flex

2011-07-29 11:28:58

iPhone開發

2011-06-23 13:50:34

2011-07-04 17:26:00

Qt SQLite

2011-09-07 11:13:27

無線路由器無線路由器設置

2023-11-29 07:30:08

Python用戶界面

2009-07-08 15:12:48

Java Servle

2014-05-26 15:35:55

Web組件Web Compone

2010-08-03 13:06:15

Flex Builde

2013-08-29 14:12:52

Storm分布式實時計算

2011-06-16 11:04:07

Qt

2022-02-18 09:39:51

Vue3.0Vue2.0Script Set

2011-09-02 10:59:10

jQuery Mobi

2013-06-24 13:38:34

HTML5 DataList

2018-03-22 14:59:13

Docker入門容器

2010-07-20 16:19:54

Perl

2010-06-18 16:56:50

UML建模語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品国产电影 | 国产又爽又黄的视频 | 欧美一级大片免费观看 | 成人免费网站www网站高清 | 91亚洲精| 国产乱码精品1区2区3区 | 成人国产在线视频 | 国产成人免费视频网站视频社区 | 中文字幕成人av | 国产亚洲精品久久情网 | 羞羞视频在线观免费观看 | 久久综合狠狠综合久久综合88 | 亚洲成人av在线 | 国产精品久久久久久久久免费软件 | 一区中文字幕 | 中文字幕爱爱视频 | 国产成人精品综合 | 成人国产精品免费观看视频 | 色婷婷久久久亚洲一区二区三区 | 欧美一级艳情片免费观看 | 国产精品免费播放 | 精品无码久久久久久久动漫 | 久久久久久中文字幕 | 亚洲人成网亚洲欧洲无码 | 午夜影院网站 | 国产精品视频一区二区三区四区国 | 91n成人| 欧美精品一区二区免费视频 | 欧美黄色片 | 亚洲一区二区三区福利 | 99国产精品99久久久久久粉嫩 | 国产成人99 | 五月激情综合网 | 视频在线亚洲 | 日韩欧美在线视频 | 日韩超碰| 国产精品三级 | 精品国产一区二区国模嫣然 | www.伊人.com | 日日躁狠狠躁aaaaxxxx | 国产午夜精品久久 |