qt - QML TextInput 忽略 inputMethodHints
问题描述
我正在 QML 中创建自定义文本输入。它的一个配置是它是一个应该只接受数字的字段,我这样做是这样的:
import QtQuick 2.6
Item {
property string vmFont: "Mono"
property string vmPlaceHolder: "Some text ..."
property bool vmNumbersOnly: false
// Qt Quick approach to make internal variables.
Item {
id: own
property string enteredText: ""
}
Rectangle {
id: lineEditRect
anchors.fill: parent
color: "#e4f1fd"
radius: 2
}
TextInput {
id: lineEdit
text: vmPlaceHolder
color: "#5499d5"
font.family: vmFont
font.pixelSize: 13
anchors.bottom: parent.bottom
//inputMethodHints: vmNumbersOnly ? Qt.ImhDigitsOnly : Qt.ImhNone
inputMethodHints: Qt.ImhDigitsOnly
verticalAlignment: TextInput.AlignVCenter
leftPadding: 10
width: lineEditRect.width
height: lineEditRect.height
onActiveFocusChanged: {
if (activeFocus){
if (own.enteredText === ""){
// Removing the placeholder
lineEdit.text = "";
}
}
}
onEditingFinished: {
own.enteredText = lineEdit.text;
if (lineEdit.text === ""){
lineEdit.text = vmPlaceHolder
}
}
}
}
然而,即使 inputMethodHits 设置为 Qt.ImhDigitsOnly,文本输入仍然接受各种按键。我究竟做错了什么?
解决方案
推荐阅读
- python - 无法在 Python 中执行 SQL HANA 查询 - 语法错误
- typescript - React Native 无法从文件中解析模块
- python - Django rest 框架 - 使用 2 种不同类型的序列化程序的多对一关系?
- javascript - javascript验证密码中的随机字符,如“a1a,aKa,a$a,aJ^lG,G78%s#
- javascript - 如何避免 Jquery 标签输入无法读取未定义错误的属性“拆分”
- c# - EntityFramework 在发送的查询中不包含 where 子句
- android - 如何滚动到谷歌地图中的位置并点击它
- javascript - 仅使用 SPAN 标记将可能以特殊字符开头或结尾且具有公共前缀的搜索短语包装为整个单词
- apache-kafka - 水槽:为分区 kafka sink 分配密钥
- ruby - Ruby:尝试测试 STDERR 输出时 RSpec 失败