Como mostrar o numpad automaticamente quando o campo de texto é carregado?

2

Estou criando um aplicativo com o SDK do Ubuntu, no qual o usuário precisa inserir um número o mais rápido possível. Eu tenho um campo de texto em uma página, onde ele tem que digitar o número:

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

Eu tenho duas perguntas sobre isso:

  1. Como posso fazer com que o TextField seja selecionado automaticamente quando a página é aberta? (o cursor está na caixa de texto)
  2. Como posso fazer com que o numpad do smartphone / tablet seja aberto automaticamente quando a página é aberta?
por Galgalesh 03.09.2013 / 15:11

1 resposta

2

É bastante simples fazer o acima. Para definir o foco automático para o componente TextField, você pode chamar forceActiveFocus () de dentro do seu componente TextField como mostrado abaixo,

Component.onCompleted: {
    forceActiveFocus()
}

Isso define o foco para o campo de texto imediatamente após o carregamento.

Como para mostrar o numpad, você pode fazê-lo definindo a dica de entrada apenas para números,

inputMethodHints: Qt.ImhDigitsOnly

Seu TextField deve ser parecido com

TextField {
    id: inputQuestion

    Component.onCompleted: {
        forceActiveFocus()
    }

    width: units.gu(5)
    height: units.gu(2)

    errorHighlight: true
    validator: IntValidator { }
    text: '?'
    inputMethodHints: Qt.ImhDigitsOnly
}

Nota: não defina a largura e a altura em pixels. Use unidades de grade como mostrado no exemplo acima, pois isso garantirá que o campo de texto tenha as mesmas dimensões em todos os dispositivos, independentemente da densidade de pixels.

    
por nik90 27.08.2014 / 09:59