Есть несколько способов сделать это, а именно
- Псевдоним
t1.text
, Связывание customText.text
, или
- Псевдоним
t1
, Связывание customText.t1.text
Обратите внимание, что в обоих методах нам потребуется предоставить id
вашему экземпляру CustomText
, чтобы мы могли ссылаться на него. В обоих методах мы также будем использовать property aliases
. Это позволяет вам выставить определенные свойства вашего CustomText
.
Псевдоним t1.text
, Bind customText.text
// CustomText.qml
Item
{
property alias text: t1.text // set a property alias
TextField
{
id: t1
placeholderText: qsTr("Enter name")
}
}
// Main.qml
Window
{
visible: true
width: 640
height: 480
title: qsTr("Hello World")
CustomText { id: customText; width: 200; height: 200 } // provide an id for reference
Rectangle
{
id: r1
border.color: "black"
width: 200
height: 200
x: 200
y: 200
Text
{
text: customText.text // bind the text property
}
}
}
Псевдоним t1
, Bind customText.t1.text
// CustomText.qml
Item
{
property alias t1: t1 // set a property alias
TextField
{
id: t1
placeholderText: qsTr("Enter name")
}
}
// Main.qml
Window
{
visible: true
width: 640
height: 480
title: qsTr("Hello World")
CustomText { id: customText; width: 200; height: 200 } // provide an id for reference
Rectangle
{
id: r1
border.color: "black"
width: 200
height: 200
x: 200
y: 200
Text
{
text: customText.t1.text // bind the property
}
}
}
Если вам нужно использовать только текст из TextField
и ничего больше, я бы порекомендовал использовать первый метод, так как остальная часть t1
остается инкапсулированной (можно также сказать "* 1035"). * private"переменная).
Как правило, никогда не используют второй метод, если только вам не нужно модифицировать весь t1
объект вне файла. (Могут быть некоторые исключения, но такой шаблон имеет тенденцию предполагать изъян в шаблоне дизайна и требует рефакторинга.) Придерживайтесь первого метода. Если вы столкнулись с необходимостью ссылаться или изменять другие свойства TextField
(placeholderText
, font
и т. Д.), Вам также следует указать псевдоним и предоставить эти свойства.