我正在使用 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
}
注意:不要以像素为单位设置宽度和高度。使用上例中所示的网格单位,因为这将确保文本字段在所有设备上具有相同的尺寸,无论其像素密度如何。