QML 使用什么来存储 int 数字 TextInput 或 TextField

QML 使用什么来存储 int 数字 TextInput 或 TextField

在需要 25 个变量来获取 int 数字输入的 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

两者都可以,因为它们将文本属性存储在字符串中。

您可以使用以下代码片段来限制输入(使用内部验证器)并使用标准 javascript 函数进行一些计算解析Int

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)}
    }
}

相关内容