如何在文本字段加载时自动显示数字键盘?

如何在文本字段加载时自动显示数字键盘?

我正在使用 Ubuntu SDK 制作一个应用程序,用户必须尽快输入一个数字。我在页面上有一个文本字段,用户必须在其中输入数字:

TextField {
    id: inputQuestion
    width: 100
    height: 50
    errorHighlight: true
    validator: IntValidator { }
    text: '?'
}

我对此有两个疑问:

  1. 如何才能使 TextField 在页面打开时自动被选中?(光标在文本框中)
  2. 如何让智能手机/平板电脑的数字键盘在页面打开时自动打开?

答案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
}

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

相关内容