_4本当の細かいソリューションを開発Qt_Quick

プロパティのアニメーション要素

提供PropertyAnimationアニメーションプロパティはNunberAnimation colorAnimation RotationAnimation Vector3dAnimation継承されています


色にcolorAimation {から「赤」、に「黄色」、期間:1000}

SmoothedAnimaさtイオン:目標値を滑らかな変化を提供するために、アニメーションに変更されたとき、それは、特別なNumberAnimationである) - SpringAnimation:バネ状の映画を提供し、質量、減衰特性などイプシロンを設定することができ;
) - ParentAnimation:アニメーションを生成するために使用される<ParentChange対応する要素)親プロジェクトを変更する;) -アンカーアニメーション:ピンを変更アニメーションを生成するために使用される<AnchorChanges要素に対応)
アニメーション作用:X
PropertyAnimation {Xへ: 50; DURATION:1000; easing.type:Easing.OutBounce}

ParallelAnimationアニメーションが同時にう
SequentialAnimationアニメーションが次々に実行されます

ジャンプアップ及びダウンピクチャ
長方形{の
幅:400
、高さ:600
上記ID:RECT

{イメージ
画像:上記ID述べ
出典: "qt.png"
anchors.horizo​​ntalCenter:parent.horizo​​ntalCenter
Y-:0
SequentialAnimation Y-ON {
ループ:Animation.Infinite //状態でアニメーションループをさせる
{NumberAnimation
に:rect.height-image.height変化をy座標
}:1000;期間Easing.OutQuad:easing.typeを


PauseAnimation {期間:1000}
にNumberAnimation {0; easing.type:Easing.OutQuad; DURATION:1000}転換のY
PauseAnimation {期間:1000}休止
}
}

}

長方形{
幅:400
、高さ:600
ID:RECTの
色"赤"

{ID MouseArea:MouseArea; anchors.fill:親}
状態:状態{
名: "押下";場合:マウスは青色に色をmouseArea.pressedときに

するPropertyChanges {
RECT;色:ターゲット"ブルー"。
Y:mouseArea.mouseY;幅:mouseArea.mouseX //宣言を変更する
}
}
遷移:遷移は{//特定の遷移コンテンツ定義
SequentialAnimation {//実行されているアニメーションを

ColorAnimation {


持続時間:200
}

PauseAnimation {
持続時間:100
}


NumberAnimation {
持続時間:500
easing.type:Easing.OutBounceの
ターゲット:RECTの
特性: "Y"
}


NumberAnimation {
持続時間:800
easing.type:Easing.InOutQuadの
ターゲット:RECTの
特性: "幅"
}
}
}
}



PauseAnimation:花を移動の途中で一時停止;
ScriptAction:トレンドでJavaScriptを有効にするか、あなたはすでに、スクリプト内の休憩からStateChangeScriptを使用して再利用することができます。
propertyAction:アニメーションの途中ですぐにプロパティを変更する代わりに、プロパティの変更使用して
アニメーションを

Flickable(バネ付き)とFlipable

サブ弾性インターフェイスとドラッグを提供することができるFlickable

お使いのモデルがロール名が含まれていない場合、そのデータはmodelDataの役割によって提供することができます。


インポートQtQuick 2.6
インポートQtQuick.Window 2.2
/ *
長方形{

幅:360、高さ:360
色:「青」

//大きい画像ウィンドウビューにドラッグすることができるより
Flickable {
上記ID:flickable
幅:200、高さ:200
//コンテンツのドラッグサイズ設定
contentWidth:image.widthと、contentHeight:image.heightを
trueに:クリップ
イメージ{上記ID述べ:イメージ;ソース: "qt.png"}

}
長方形{
ID:スクロールバー
anchors.right:flickable.rightの
Y:flickable.visibleArea.yPosition * flickable.height> 0?flickable.visibleArea.yPosition * flickable.height:0
幅:10
高さ:flickable.visibleArea.heightRatio * flickable.heightの
色"黒"
}

}


//反転さできる
Flipable {
IDを:flipable
幅:200は
200である。高さ
プロパティBOOLひっくり返さ:falseに

フロント:イメージ{源: "qt.png"; anchors.centerIn:親}
バック:イメージ{源: "qt.png"; anchors.centerIn:親}

変換:回転//回転
{
ID:回転
。origin.x:flipable.widthの/ 3
。origin.y:flipable.heihgt / 3
Axis.X:0; axis.y :. 1; axis.z:0
角:0 //角度を変更します

}

状態:状態{
名: "バック"
するPropertyChanges {
対象:回転;角度:180


}
とき:filpable.flipped

}
遷移:遷移{

NumberAnimation {ターゲット:回転;プロパティ: "角度"、期間2000}

}

MouseArea {
anchors.fill:親が
onClicked:!{flipable.flipped = flipable.flipped
( "クリック")はconsole.logを
}
}

}


輸入QtQuick 2.0

Flipable {
ID:flipable
幅:240
、高さ:240

プロパティブール値が反転した:偽

フロント:画像{ソース:「qt.png」。anchors.centerIn:親}
バック:イメージ{源: ""。anchors.centerIn:親}

変換:{回転
ID:回転
origin.x://はflipable.widthの回転の中心を設定
origin.y:flipable.heightの/ 5
Axis.X :. 1; axis.y :. 1; axis.z:// 1つのSET軸。 y軸の周りを回転する1〜.Y軸はy軸周りaxis.yに1に設定される
角度://デフォルトの角度0
}

状態:状態{
名:「バック」
するPropertyChanges {対象:回転。角度:180} //旋转角度
とき:flipable.flipped
}

遷移:遷移{
NumberAnimation {ターゲット:回転;プロパティ: "角度"、時間:1000} //アニメーション対象デジタルのDurationプロパティ
}

MouseArea {
anchors.fill:親は
:onClicked!flipable.flipped = flipable.flipped
}
}

 

モデルとビュー
項目表示のためのデータを提供するデータモデルを使用して、(ワーム[1つのListView、GridViewのリピータなど)のいくつかのQML図。これらのプロジェクトは通常「は、毎日バーモデルのインスタンスを作成するデリゲート(委任)成分を必要とするモデルは、静的であることができ、また、動的で項目を、変更、削除、または移動することができる
の結合によって委託名前役割のためのデータは、データを提供するために委託します

 

 

項目{

幅:200である
高さ:200である
ListModelの{//モデルは、データ提供
IDを:,に、mymodel
ListElement {タイプ: "犬"、年齢:. 5}
ListElement {タイプ: "犬"、年齢:. 8}
特別な役割インデックスを//
場合//ロードされたモデルは、データがmodelDataの役割によって提供することができる、ロール名が含まれていません。
}

表示コンポーネントセット主成分{//
MyDelegate:ID
テキスト{テキスト:タイプ+「:」+年齢}

}

リストビュー{//ビュー表示

anchors.fill:親
モデル:mymodelというの
デリゲート:myDelegate

}
}

XmlListModelは、XMLデータソースからモデルを作成することができます、あなたはのXmlRole要素によって役割を指定することができ
、このモデルのWebベースのアプリケーションを作成することが容易になります
xmlListModelを{//データを提供

}

 


矩形{

幅:380
高さ:380

XmlListModel {//提供数据
ID:feedModelの
ソース: "http://rss.news.yahoo.com/rss/oceania"
クエリ"RSS /チャネル/項目"
XmlRole {名: "タイトル"、クエリ:「タイトル/文字列() "}
XmlRole {名:"リンク";クエリー:"リンク/列() "}
XmlRole {名: "説明";クエリー:"説明/列() "}

}
リストビュー{
anchors.fill:親
モデル:feedModelの
デリゲート:列{
テキスト{テキスト: "タイトル" +タイトル}
テキスト{テキスト: "リンク" +リンク}
テキスト{テキスト: "descrption" +記述}
MouseArea {}
}
}
}

SetDataメソッド(INT行、CONST QStringの& FIELD_NAME、QVariant NEW_VALUE): モデル定義関数で
、その後はデリゲートを呼び出し

ListView.view.model.setData(インデックス、提出され、値)

リストビューエントリが配置
GridViewのグリッド
pathViewを開きパス

WebViewを使用して作成はFlickableビューの必要な
モデルは別のファイルに定義することができます

 

ハイライト:長方形{色: "lightsteelblue"、半径:5(角丸)}


成分{

ID:contactDlelgate
長方形{
ID:ラッパー
幅:wrapper.width
色:ListView.isCurrentItem?"黒"、 "赤"
テキスト{
ID:のContactInfoの
テキスト:名+ ":"数の
色:wrapper.ListView.isCurrent?「黒」、「赤」
}
}
}

 

グリッドの絵その中:

 

矩形{
幅:400
、高さ:400

色:「白」

ListModelの{
ID:のAppModel
ListElement {名: "QT"、アイコン"qt.png"}
ListElement {名: "QT"、アイコン"qt.png"}
ListElement {名: "QT";アイコン"QT。 PNG "}
ListElement {名:" QT "アイコン" qt.png "}
ListElement {名:" QT "アイコン" qt.png "}
ListElement {名:" QT "アイコン" qt.png」 }

}

コンポーネント{
ID:appDelegate
アイテム{
幅:100
、高さ:100
イメージ{
ID:myIconの
幅:70;高さ:70
Y:20
anchors.horizo​​ntalCenter:parent.horizatalCenterの
ソース:アイコン

}
テキスト{
アンカー{トップ:myIcon.bottom
horizo​​ntalCenter:parent.horizo​​ntalCenter

}
テキスト:名前


}
}

 

}
コンポーネント{
ID:appHighlight
長方形{幅:80;高さ:80;色: "lightsteelblue"}

}

{GridViewの
anchors.fill:親
cellWidth:100; cellHeight:100
ハイライト:appHighlight
フォーカス:構築// trueにナビゲートするために使用される
モデル:のAppModel
デリゲート:appDelegate
}
}


輸入QtWebKit 3.0

中央の領域をドラッグすることができFlickable {//

幅:400
、高さ:300
contentWidth:webView.width; contentHeight:wedView.height

WebViewの
{
ID:WebViewの
URL: "http://www.baidu.com"
}
}

ファイル:///home/hmsnc/qml/easing/easing.qml:インストールされていません284モジュール「QtWebKit」

* /


矩形{
幅:400
、高さ:240
色: "白"

するListModel {//模型提供数据
ID:のAppModel
ListElement {名: "QT1";アイコン: "qt.png"}
ListElement {名: "QT2";アイコン: "qt.png"}
ListElement {名: "QT3"。アイコン: "qt.png"}
ListElement {名: "qt5";アイコン: "qt.png"}
ListElement {名: "QT6";アイコン: "qt.png"}
ListElement {名: "qt7";アイコン: "qt.png"}

}

コンポーネント{//委任インスタンスデータの各
ID:appDelegate
アイテム{
幅:100、高さ:100
スケール:// PathView.iconScaleレンジ
イメージ{
ID:myIcon
Y:20であり; anchors.horizo​​ntalCenter:parent.horizo​​ntalCenterの
幅:80;高さ:80
出典:アイコン
スムーズ:trueに

}
テキスト{
アンカー{トップ:myIcon.bottom
horizo​​ntalCenter:parent.horizo​​ntalCenter

}
テキスト:名前
スムーズ:真
}

MouseArea {
anchors.fill:親
onClicked:view.currentIndex =指数
}

}
}

コンポーネント{
ID:appHighlight
長方形{幅:80;高さ:80;色: "lightsteelblue"}

}

{pathViewを開きの
ID:ビュー
anchors.fill:親の
ハイライト:appHighlight
preferredHighlightBegin:0.5
preferredHighlightEnd:0.5 //優先ハイライト
フォーカス:真の
モデル:のAppModel
デリゲート:appDelegate
パス:パス{//一つ以上のパスセグメントパスラインPathQuadがある場合PathCubic
STARTX:開始点を設定する10 //
50:startYとは


PathAttribute {名: "iconScale";値:0.5}
PathQuad {X:200であり; Y:150; controlX:50; controlY:} 200であります

PathAttribute {名: "iconScale";値:0.5}
PathQuad {X:390、Y:50; controlX:350; controlY:200}

PathAttribute {名: "iconScale";値:0.5}

}

}
}

線形パス
のパス{
STARTX:50; startYとは:50
パスライン{X:200であり; Y:200です}
}

ターゲットエントリ調整PathPercentとの間のギャップ

 

おすすめ

転載: www.cnblogs.com/countryboy666/p/11204761.html