![如何在文本字段加载时自动显示数字键盘?](https://linux22.com/image/841621/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%96%87%E6%9C%AC%E5%AD%97%E6%AE%B5%E5%8A%A0%E8%BD%BD%E6%97%B6%E8%87%AA%E5%8A%A8%E6%98%BE%E7%A4%BA%E6%95%B0%E5%AD%97%E9%94%AE%E7%9B%98%EF%BC%9F.png)
我正在使用 Ubuntu SDK 制作一个应用程序,用户必须尽快输入一个数字。我在页面上有一个文本字段,用户必须在其中输入数字:
TextField {
id: inputQuestion
width: 100
height: 50
errorHighlight: true
validator: IntValidator { }
text: '?'
}
我对此有两个疑问:
- 如何才能使 TextField 在页面打开时自动被选中?(光标在文本框中)
- 如何让智能手机/平板电脑的数字键盘在页面打开时自动打开?
答案1
上面的操作非常简单。要将自动焦点设置为 TextField 组件,您可以调用forceActiveFocus()在您的 TextField 组件中,如下所示,
Component.onCompleted: {
forceActiveFocus()
}
这会在文本字段加载后立即将焦点设置到文本字段上。
至于显示数字键盘,您可以通过将输入提示设置为仅数字来实现,
inputMethodHints: Qt.ImhDigitsOnly
你的 TextField 应该看起来像,
TextField {
id: inputQuestion
Component.onCompleted: {
forceActiveFocus()
}
width: units.gu(5)
height: units.gu(2)
errorHighlight: true
validator: IntValidator { }
text: '?'
inputMethodHints: Qt.ImhDigitsOnly
}
注意:不要以像素为单位设置宽度和高度。使用上例中所示的网格单位,因为这将确保文本字段在所有设备上具有相同的尺寸,无论其像素密度如何。