QTとQMLはまったく新しいものです。 2つのプロパティdoubleのcallValue
とhandRaiseXBB
の関係に基づいて長方形の色を設定しようとしていますが、エラーが発生します
予期しないトークンの場合」
そして
修飾名IDが必要です
誰かが私が間違っていることを教えてもらえますか?
import QtQuick 2.0
Item{
id: hand
property double callValue: 0.0
property double handRaiseXBB: 100
property string handCallColor: "green"
property string handFoldColor: "grey"
Rectangle {
anchors.fill: hand
if (hand.callValue >= hand.handRaiseXBB) {
color: hand.handFoldColor
}
else {
color: hand.handCallColor
}
}
}
あなたはこのようにそれを行うことができます:
color: (hand.callValue >= hand.handRaiseXBB) ? hand.handFoldColor : hand.handCallColor
関数を作成してそれを計算し、関数の戻り値をcolorプロパティに割り当てることもできます。
function getHandColor()
{
var handColor = hand.handCallColor
if(hand.callValue >= hand.handRaiseXBB)
{
handColor = hand.handFoldColor
}
return handColor
}
color: getHandColor()
これを解決する別の形式は次のとおりです。
Rectangle {
...
color: {
color = hand.handCallColor
if(hand.callValue >= hand.handRaiseXBB)
color = hand.handFoldColor
}
...
}
ただし、3項演算子を含むフォームの方が優れています。
QMLはjavascriptに「基づいて」おり、すべてのitensがjavascriptオブジェクトであると信じています。
var Rectangle: {
color: "red",
id: "id",
//then we can do this
setColor: function(_color) {this.color = _color}
}