先用QML布局好数字键盘以及TextInput。
在实现键入的过程中主要使用了TextInput类型的cursorPosition属性以及两个方法:void insert(int position, string text)和
void remove(int start, int end)。cursorPosition含义是光标位于TextInput中第几个数字之后闪烁,两个方法含义很明确。
实现过程也很简单,假设TextInput的id为textInput,在左移按钮下MouseArea的onClicked函数中添加:
textInput.cursorPosition = textInput.cursorPosition - 1;
在右移按钮下MouseArea的onClicked函数中添加:
textInput.cursorPosition = textInput.cursorPosition + 1;
在Del按钮下MouseArea的onClicked函数中添加:
textInput.remove(textInput.cursorPosition - 1, textInput.cursorPosition);
在数字键按钮下MouseArea的onClicked函数中添加:
textInput.insert(freqTextInput.cursorPosition, "2");
可以看到,方法很简单,但是实现思路却浪费了我很长时间,网上找了很久的资料,最后查看QT帮助文档才有的思路。