2017-01-26 4 views
0

У меня есть TextField, где я хочу условно показать или скрыть фон. Вот текстовое поле с фоном:Как сбросить свойства qml до их значения по умолчанию?

TextField { 
    id: with_background 
} 

и вот один без:

TextField { 
    id: without_background 
    background: null 
} 

Я попытался установить фон условно undefined, но это не сработало:

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

Возможно ли это в QML?

ответ

3

TextField имеет право собственности на фон. Когда вы устанавливаете фон на null, старый фон уничтожается, чтобы избежать «нагромождения» фонов. Поэтому вы не можете переключать фон назад и вперед. Однако, если вам нужно только переключить его видимость, вы можете сделать:

TextField { 
    background.visible: row.activeFocus 
} 
+0

Большое спасибо. Это кажется логичным в ретроспективе. Я еще не полностью понял QML. –

Смежные вопросы