このコードを取る:
import QtQuick 1.1
Rectangle {
width: 100
height: 100
property color fromColor: "red"
property color toColor: "blue"
gradient: Gradient {
property color fromColor: "yellow"
property color toColor: "green"
GradientStop { position: 0; color: fromColor }
GradientStop { position: 1; color: toColor }
}
}
囲んでいる要素からそのプロパティとプロパティを正確にGradient
選択するのはなぜですか?fromColor
toColor
これはどこに文書化されていますか(少なくともソースコードコメント内、公式ドキュメント内でより適切です)?
注:この「QML難読化の例は、Girish Ramakrishnanの講演Qtクイックベストプラクティスとデザインパターン(25分に巻き戻す)からのものです。彼は、物事は非常に複雑で、コンポーネントスコープなどに関係していると述べていますが、時間がありません。理由を説明します。
[アップデート]
したがって、MartinJが以下に示すように、element-property(element-childだけでなく)階層の最上位コンポーネントは、そのプロパティがすべてのプロパティに表示されますが、そのプロパティのプロパティが優先され、全く見られない「中級」アイテム。
これが小さな例です:
import QtQuick 1.1
Item {
Item {
property string s: "parent-str"
Item { Component.onCompleted: console.log(s) }
}
}
これは与える:"ReferenceError: Can't find variable: s"
そして、これは期待どおりに機能します。
import QtQuick 1.1
Item {
property string s: "parent-str"
Item { Component.onCompleted: console.log(s) }
}
、出力"parent-str"
。
以下のMartinJのコメントをご覧ください。