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

How do I reset qml-properties to their default value?

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

TextField {
    id: with_background
}

还有一个没有:

TextField {
    id: without_background
    background: null
}

我试过有条件地将背景设置为 undefined,但没有成功:

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

这在 QML 中甚至可能吗?

TextField 取得背景的所有权。当您将背景设置为 null 时,旧背景将被破坏以避免背景 "piling up"。因此,您不能来回切换背景。但是,如果您只需要切换它的可见性,您可以这样做:

TextField {
    background.visible: row.activeFocus
}