【发布时间】:2014-10-02 15:52:35
【问题描述】:
如何一次性有条件地设置属性组的不同属性?
示例:假设有一个上下文属性_context.condition 可用。鉴于该值,我想为 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
}
}
}
我在 Qt 5.3 中使用 QtQuick 2.0。谢谢!
【问题讨论】:
-
看起来像 HorizontalCenter: _context.condition ? parent.horizontalCenter : 0 等等
-
好吧,我不知道值 0 对应于“未设置”。我会检查一下。很麻烦,但至少有些东西。谢谢!
-
实际上,我不确定这个,试试吧 :) 也许,你可以分配 'undefined' 而不是 0
-
至少它适用于我的示例。发布正确的答案,您将获得学分! :)