web-dev-qa-db-fra.com

QML quoi utiliser pour stocker les nombres int TextInput ou TextField

Ce qui est bon à utiliser sur une application téléphonique Ubuntu qui a besoin de 25 variables pour obtenir des entrées qui sont des nombres int. Champs de texte ou saisie de texte.

En ce moment, j'utilise des entrées de texte pour créer les 25 identifiants que je vais utiliser.

Voici un exemple de mon code:

   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
                      }
                  }
1
Diogo Figueira

Les deux sont acceptables car ils stockent la propriété text dans une chaîne.

Vous pouvez utiliser l'extrait de code suivant pour restreindre l'entrée (avec IntValidator ) et effectuer des calculs à l'aide de la fonction javascript standard 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)}
    }
}
2
Sylvain Pineau