web-dev-qa-db-ja.com

QML int数値の保存に使用するものTextInputまたはTextField

Int数値である入力を取得するために25個の変数を必要とするUbuntu Phoneアプリで使用するのに適したもの。テキストフィールドまたはテキスト入力。

現在、テキスト入力を使用して、使用する25個のIDを作成しています。

これが私のコードの例です:

   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

どちらも、テキストプロパティを文字列に格納するので問題ありません。

次のスニペットを使用して( IntValidator で)入力を制限し、標準のJavaScript関数 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