QML o que usar para armazenar números int TextInput ou TextField

1

O que é bom usar em um aplicativo do Ubuntu Phone que precisa de 25 variáveis para obter entradas que são números int. Campos de texto ou entrada de texto.

Agora mesmo estou usando entradas de texto para criar os 25 IDs que vou usar.

Aqui está um exemplo do meu código:

   Rectangle {  width: 40; height: 17; radius: 20.0
                      id: rec2
                      x: 102
                      y: 50
                      color: "#F0EBEB"
                      border.color: "#000000"
                      // width, height
                      TextInput {
                          id: q2
                          text: "0"
                          anchors.centerIn: parent
                          cursorVisible: true
                      }
                  }
                   Rectangle {  width: 40; height: 17; radius: 20.0
                      id: rec3
                      x: 102
                      y: 67
                      color: "#F0EBEB"
                      border.color: "#000000"
                      // width, height
                      TextInput {
                          id: q3
                          text: "0"
                          anchors.centerIn: parent
                          cursorVisible: true
                      }
                  }
                   Rectangle {  width: 40; height: 17; radius: 20.0
                      id: rec4
                      x: 102
                      y: 84
                      color: "#F0EBEB"
                      border.color: "#000000"
                      // width, height
                      TextInput {
                          id: q4
                          text: "0"
                          anchors.centerIn: parent
                          cursorVisible: true
                      }
                  }
    
por Diogo Figueira 07.07.2014 / 14:12

1 resposta

2

Ambos estão corretos, pois armazenam a propriedade text em uma String.

Você pode usar o snippet a seguir para restringir a entrada (com IntValidator ) e fazer alguns cálculos usando a função JavaScript padrão parseInt :

import QtQuick 2.0
import Ubuntu.Components 0.1
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1

MainView {
    id: main
    width: 200
    height: 200

    TextField {
        anchors.centerIn: parent
        placeholderText: "0"
        text: "12"
        validator: IntValidator{}
        horizontalAlignment: TextInput.AlignHCenter
        style: TextFieldStyle {
            textColor: "black"
            background: Rectangle {
                radius: 20
                color: "#F0EBEB"
                implicitWidth: 40
                implicitHeight: 24
                border.color: "#000000"
                border.width: 1
            }
        }
        onTextChanged: {console.log(parseInt(text,10) + 1000)}
    }
}
    
por Sylvain Pineau 07.07.2014 / 14:44