2017-12-12 13 views
0

QMLにGradientがあります(下の例を参照)。 QMLで「#1AD6FD」または「#1D62F0」という色をグローバルに定義することはできますか?グローバルにグラデーションカラーを定義する方法は?

gradient: Gradient { 
    GradientStop { position: 0.00; color: "#1AD6FD" } 
    GradientStop { position: 1.00; color: "#1D62F0" } 
} 
+0

確かにあなたのような他のQMLファイルに含めますか? – xander

+0

@xanderどのようにしてそれを使用するのですか?あなたは私に例を挙げて、答えとしてマークすることができますか? – NTMS

+0

あなたのQMLに依存しています。あなたが色を使いたい場所は、ただ1つのQMLファイル内にあれば、それをルート項目で定義できます。例を使って小さな答えを書くことができます。 – xander

答えて

1

カスタムプロパティは、このような任意のQMLオブジェクトで定義できます。

Rectangle { 
    id: root 

    // you can define your on custom properties like this 
    property color gradientColor1: "#1AD6FD" 
    property color gradientColor2: "#1D62F0" 
} 

次に、idで定義されているオブジェクトにアクセスできる他のアイテムで使用します。

Item { 
    gradient: Gradient { 
     GradientStop { position: 0.00; color: root.gradientColor1 } 
     GradientStop { position: 1.00; color: root.gradientColor1 } 
    } 
} 

再利用したい場合は、グラデーション全体をグローバルに定義することもできます。

他のQMLファイルのプロパティにアクセスするには、それを行う方法が複数あります。 QMLルートオブジェクトにアクセスできる場合は、他のファイルからそのプロパティにアクセスすることもできます。また、QMLオブジェクト全体ではなく色値の定数を使用してグローバルJavaScriptライブラリを定義することもできます。

もう1つの簡単な方法は、プロジェクトのいくつかのグローバルプロパティで独立したQMLオブジェクトを定義し、他のQMLファイルにそれを参照するIDだけを含む、最も簡単な解決策です。

ただ、上記の長方形の例のようないくつかのプロパティを持つ空のQML-項目を定義し、それはあなただけのグローバルプロパティとして定義することができ、この

Rectangle { 
    id: root 

    // include your custom QML global item (GlobalProperties.qml) 
    GlobalProperties { 
     id: globalProperties 
    } 

    // then you can use it like before, i.e. 
    color: globalProperties.gradientColor1 // color prop from your GlobalProperties.qml 
} 
+0

その働き。最後に一つだけ。私のプロジェクトのいくつかのグローバルプロパティを持つ独立したQMLオブジェクトを定義し、それを他のQMLファイルに含める方法は? – NTMS

+1

他のQMLファイルと同じように、ルートコンテキストとしてItemを使用し、それを他のQMLファイルに含めるだけで、私は答えに例を追加します。 – xander

+0

例を追加しましたが、理解しやすいと思いますが、QMLを少しずつ試してみる必要があります。より多くの質問がある場合は、尋ねてください。 – xander

関連する問題