如何将qml-properties重置为其默认值?

时间:2017-01-26 22:47:59

标签: qml qt5 qtquick2 qtquickcontrols2

我有TextField我想要有条件地显示或隐藏背景。这是一个带背景的文本字段:

TextField {
    id: with_background
}

而这里没有:

TextField {
    id: without_background
    background: null
}

我已尝试有条件地将背景设置为undefined,但这不起作用:

TextField {
    background: row.activeFocus ? TextField.background : null;
}

这在QML中是否可行?

1 个答案:

答案 0 :(得分:3)

TextField取得后台所有权。将背景设置为null时,会破坏旧背景以避免背景“堆积”。因此,您无法来回切换背景。但是,如果您只需要切换其可见性,则可以执行以下操作:

TextField {
    background.visible: row.activeFocus
}