我有一个小显示窗口,它应该包含一个像“0000.00”这样的InputMask。单击从0到9的数字按钮时,显示屏应显示相应的数字,例如:0345.89 这是我的代码:
TextInput {
id: displayNumbers6Text
cursorVisible: true
focus: true
validator: RegExpValidator {
regExp: /[0-9]+/
}
inputMask: "0000.00"
maximumLength: 7
}
对于按钮:
Button {
width: parent.width*0.3
height: parent.height*0.15
buttonColor: "#000000"
MouseArea {
anchors.fill: parent
onClicked: {
displayNumbers6Text.text = "1"
}
}
}
但它不起作用。我做错了什么?
答案 0 :(得分:1)
分配text
属性时,将此值重置为“1”。
如果您尝试的是在单击按钮时插入值,则可以尝试:
import QtQuick 2.0
Rectangle {
width: 360
height: 200
TextInput {
id: displayNumbers6Text
width: parent.width
height: parent.height * 0.5
cursorVisible: true
focus: true
validator: DoubleValidator {
}
inputMask: "0000.00"
maximumLength: 7
function appendNum(num) {
var dotPos = text.indexOf(".");
if (dotPos == 4)
text += num;
else
text = text.substr(0, dotPos) + num + text.substr(dotPos);
}
}
Rectangle {
width: parent.width*0.3
height: parent.height*0.15
anchors.top: displayNumbers6Text.bottom
color: "black"
MouseArea {
anchors.fill: parent
onClicked: {
console.log(displayNumbers6Text.text);
displayNumbers6Text.appendNum("1");
}
}
}
}
TextInput
添加了一个appendNum函数,以在文本字符串的末尾插入一个值。请注意,由于您设置的inputMask