Wie kann ich den von einem Benutzer eingegebenen Wert in einer Variablen speichern?
Ich habe zum Beispiel diesen Code:
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)}
}
Kann ich die ID später verwenden, um die Summe oder Multiplikation zu berechnen? Wenn ja, wie?
Antwort1
Sie können die Texteigenschaft außerhalb der TextField-Komponente wiederverwenden.
Sehen Sie sich das folgende Beispiel an, in dem ein Textelement das Ergebnis des Eingabetexts + 5 anzeigt:
Der entsprechende Code:
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)
}
}
}
Aktualisieren:
Um die Summe zweier Texteingaben global zu speichern, können Sie eine Eigenschaft im übergeordneten Element definieren. Sehen Sie sich den folgenden Code an:
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
}
}
}
Das neue Textelement verwendet jetzt die Eigenschaft der „Haupt“-Komponente: