Как сохранить значение, введенное пользователем в переменную?
Например, у меня есть такой код:
TextField {width: 37; height: 19
var
id: q1
x: 91
y: 29
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
anchors.centerIn: parent
placeholderText: "0"
font.pixelSize: 12
text: ""
anchors.verticalCenterOffset: 26
anchors.horizontalCenterOffset: -115
validator: IntValidator{}
horizontalAlignment: TextInput.AlignHCenter
style: TextFieldStyle {
textColor: "black"
background: Rectangle { width: 45; height: 25; radius: 20.0
color: "#F0EBEB"
implicitWidth: 40
implicitHeight: 24
border.color: "#000000"
border.width: 1
}
}
onTextChanged: {console.log(parseInt(text,10) + 1000)}
}
Могу ли я использовать идентификатор для последующего использования и выполнения суммы или умножения? Если да, то как?
решение1
Свойство text можно повторно использовать за пределами компонента TextField.
Посмотрите на следующий пример, где элемент Текст показывает результат ввода текста + 5:
Соответствующий код:
import QtQuick 2.0
import Ubuntu.Components 0.1
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
MainView {
id: main
width: 300
height: 150
Row {
width: 37;
height: 19
spacing: units.gu(3)
TextField {
id: q1
placeholderText: "0"
font.pixelSize: 12
text: "0"
validator: IntValidator{}
horizontalAlignment: TextInput.AlignHCenter
style: TextFieldStyle {
textColor: "black"
background: Rectangle {
width: 45;
height: 25;
radius: 20.0
color: "#F0EBEB"
implicitWidth: 40
implicitHeight: 24
border.color: "#000000"
border.width: 1
}
}
}
Text {
height: 25;
text: "TextField + 5 = "+(parseInt(q1.text, 10) + 5)
}
}
}
Обновлять:
Чтобы сохранить сумму двух текстовых входных данных глобально, можно определить свойство в родительском элементе, взгляните на следующий код:
import QtQuick 2.0
import Ubuntu.Components 0.1
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
MainView {
id: main
width: 300
height: 300
property var sum_q1_q2: parseInt(q1.text, 10) + parseInt(q2.text, 10)
Column {
width: 37;
height: 19
spacing: units.gu(3)
TextField {
id: q1
placeholderText: "0"
font.pixelSize: 12
text: "0"
validator: IntValidator{}
horizontalAlignment: TextInput.AlignHCenter
style: TextFieldStyle {
textColor: "black"
background: Rectangle {
width: 45;
height: 25;
radius: 20.0
color: "#F0EBEB"
implicitWidth: 40
implicitHeight: 24
border.color: "#000000"
border.width: 1
}
}
}
TextField {
id: q2
placeholderText: "0"
font.pixelSize: 12
text: "0"
validator: IntValidator{}
horizontalAlignment: TextInput.AlignHCenter
style: TextFieldStyle {
textColor: "black"
background: Rectangle {
width: 45;
height: 25;
radius: 20.0
color: "#F0EBEB"
implicitWidth: 40
implicitHeight: 24
border.color: "#000000"
border.width: 1
}
}
}
Text {
height: 25;
text: "Q1 + Q2 = "+main.sum_q1_q2
}
}
}
Новый элемент Text теперь использует свойство «основного» компонента: