Jak można warunkowo ustawić różne właściwości grupy właściwości za jednym razem?QML: warunkowo ustawić różne właściwości grupy właściwości
Przykład: Załóżmy, że dostępna jest właściwość kontekstu _context.condition
. Biorąc pod uwagę tę wartość, chciałbym ustawić różne zakotwiczenia dla elementu qml.
// Some item...
Rectangle {
id: square
width: 50
height: 50
// For simple properties this should work:
color: { if (_context.condition) "blue"; else "red" }
// But how to do it for complex properties like 'anchors'?
// Note that I set different properties for different values of the condition.
// Here is how I would do it, but this does not work:
anchors: {
if (_context.condition) {
// Anchors set 1:
horizontalCenter: parent.horizontalCenter
bottom: parent.bottom
bottomMargin: 20
} else {
// Anchors set 2:
verticalCenter: parent.verticalCenter
right: parent.right
rightMargin: 20
}
}
}
Używam QtQuick 2.0 w Qt 5.3. Dzięki!
wygląda horizontalCenter: _context.condition? parent.horizontalCenter: 0 i tak dalej –
Ok, nie wiedziałem, że wartość 0 odpowiada "nie ustawiona". Sprawdzę to. Cumbersome, ale przynajmniej coś. Dzięki! – normanius
w rzeczywistości, nie jestem tego pewien, po prostu spróbuj :) może, możesz przypisać 'undefined' zamiast 0 –