SpinBox QML Type

ユーザーがプリセット値のセットから選択できるようにします。詳細...

Import Statement: import QtQuick.Controls
Inherits:

Control

プロパティ

シグナル

メソッド

詳細説明

SpinBox は、上下インジケータ ボタンをクリックするか、キーボードの上下を押すことによって、ユーザーが整数値を選択できるようにします。オプションで、SpinBox はeditable にすることもでき、ユーザーは入力フィールドにテキスト値を入力できます。

デフォルトでは、SpinBox は[0-99] stepSize 1 の範囲の離散値を提供します。

SpinBox {
    value: 50
}

カスタム値

SpinBox は整数値で動作しますが、任意の入力値を受け入れるようにカスタマイズできます。次のスニペットは、validatortextFromValuevalueFromText を使用してデフォルトの動作をカスタマイズする方法を示しています。

SpinBox {
    id: spinBox
    from: 0
    to: items.length - 1
    value: 1 // "Medium"

    property var items: ["Small", "Medium", "Large"]

    validator: RegularExpressionValidator {
        regularExpression: new RegExp("(Small|Medium|Large)", "i")
    }

    textFromValue: function(value) {
        return items[value];
    }

    valueFromText: function(text) {
        for (var i = 0; i < items.length; ++i) {
            if (items[i].toLowerCase().indexOf(text.toLowerCase()) === 0)
                return i
        }
        return spinBox.value
    }
}

同じように、SpinBoxは浮動小数点数を受け付けるようにカスタマイズできます:

SpinBox {
    id: spinBox
    from: 0
    value: decimalToInt(1.1)
    to: decimalToInt(100)
    stepSize: decimalFactor
    editable: true
    anchors.centerIn: parent

    property int decimals: 2
    property real realValue: value / decimalFactor
    readonly property int decimalFactor: Math.pow(10, decimals)

    function decimalToInt(decimal) {
        return decimal * decimalFactor
    }

    validator: DoubleValidator {
        bottom: Math.min(spinBox.from, spinBox.to)
        top:  Math.max(spinBox.from, spinBox.to)
        decimals: spinBox.decimals
        notation: DoubleValidator.StandardNotation
    }

    textFromValue: function(value, locale) {
        return Number(value / decimalFactor).toLocaleString(locale, 'f', spinBox.decimals)
    }

    valueFromText: function(text, locale) {
        return Math.round(Number.fromLocaleString(locale, text) * decimalFactor)
    }
}

正規表現を使って接頭辞と接尾辞を追加できます:

SpinBox {
    id: spinBox
    from: 0
    value: 11
    to: 100
    editable: true
    anchors.centerIn: parent

    property string prefix: "L="
    property string suffix: "m"

    validator: RegularExpressionValidator { regularExpression: /\D*(-?\d*\.?\d*)\D*/ }

    textFromValue: function(value, locale) {
        return prefix + Number(value).toLocaleString(locale, 'f', 0) + suffix
    }

    valueFromText: function(text, locale) {
        let re = /\D*(-?\d*\.?\d*)\D*/
        return Number.fromLocaleString(locale, re.exec(text)[1])
    }
}

TumblerSpinBox のカスタマイズQt クイックコントロールのフォーカス管理も参照してください

プロパティ ドキュメント

displayText : string [read-only, since QtQuick.Controls 2.4 (Qt 5.11)]

このプロパティは、スピンボックスのテキスト値を保持します。

このプロパティの値は、textFromValuelocale に基づいています:

var text = spinBox.textFromValue(spinBox.value, spinBox.locale)

このプロパティは、QtQuick.Controls 2.4(Qt 5.11)で導入されました。

textFromValueも参照してください


down group

down.hovered : bool

down.implicitIndicatorHeight : real

down.implicitIndicatorWidth : real

down.indicator : Item

down.pressed : bool

これらのプロパティは、ダウン・インジケータ項目と、それが押されたかホバーされたかを保持します。down.hovered プロパティはQtQuick.Controls 2.1 で導入され、down.implicitIndicatorWidthdown.implicitIndicatorHeight プロパティはQtQuick.Controls 2.5 で導入されました。

decrease()も参照してください


editable : bool

このプロパティは、スピンボックスが編集可能かどうかを保持します。デフォルト値はfalse です。

validatorも参照して ください。


from : int

このプロパティは、範囲の開始値を保持します。デフォルト値は0 です。

to およびvalueも参照して ください。


inputMethodComposing : bool [read-only, since QtQuick.Controls 2.2 (Qt 5.9)]

こ のプ ロパテ ィ は、 編集可能 ス ピ ン ボ ッ ク ス に入力 メ ソ ッ ド か ら の部分的なテ キ ス ト 入力があ る か ど う か を保持 し ます。

入力メソッドは、入力中に、部分テキストを編集またはコミットするために、スピン ボックスからのマウス イベントまたはキー イベントに依存する場合があります。このプロパティは、入力メソッドの正しい動作を妨げる可能性のあるイベント ハンドラを無効にするタイミングを決定するために使用できます。

このプロパティは、QtQuick.Controls 2.2(Qt 5.9)で導入されました。


inputMethodHints : flags [since QtQuick.Controls 2.2 (Qt 5.9)]

このプロパティは、入力メソッドに対して、スピンボックスの予想される内容とその操作方法に関するヒントを提供します。

デフォルト値はQt.ImhDigitsOnly です。

値はフラグのビット単位の組み合わせか、ヒントが設定されていない場合はQt.ImhNone です。

動作を変更するフラグは以下の通りです:

  • Qt.ImhHiddenText - パスワード入力時によく使われるように、文字を隠します。
  • Qt.ImhSensitiveData - 入力されたテキストは、アクティブな入力メソッドによって、予測ユーザー辞書のような永続的なストレージに保存されません。
  • Qt.ImhNoAutoUppercase - 入力メソッドは、文の終了時に自動的に大文字に切り替えようとしません。
  • Qt.ImhPreferNumbers - 数字を優先します(必須ではありません)。
  • Qt.ImhPreferUppercase - 大文字を優先する(必須ではない)。
  • Qt.ImhPreferLowercase - 小文字が優先されます(必須ではありません)。
  • Qt.ImhNoPredictiveText - 入力中に予測入力(辞書検索など)を使用しない。
  • Qt.ImhDate - テキスト・エディターは日付フィールドとして機能します。
  • Qt.ImhTime - テキスト・エディタは時間フィールドとして機能します。

入力を制限するフラグ(排他フラグ)は以下の通りです:

  • Qt.ImhDigitsOnly - 数字のみ入力可能。
  • Qt.ImhFormattedNumbersOnly - 数値入力のみが許可されます。小数点やマイナス記号も含まれます。
  • Qt.ImhUppercaseOnly - 大文字の入力のみが許可されます。
  • Qt.ImhLowercaseOnly - 小文字の入力のみが許可されます。
  • Qt.ImhDialableCharactersOnly - 電話ダイヤルに適した文字のみを許可します。
  • Qt.ImhEmailCharactersOnly - メールアドレスに適した文字のみが許可されます。
  • Qt.ImhUrlCharactersOnly - URL に適した文字のみが許可されます。

マスク:

  • Qt.ImhExclusiveInputMask - 排他的フラグが使用されている場合、このマスクはゼロ以外を返します。

このプロパティは QtQuick.Controls 2.2 (Qt 5.9) で導入されました。


live : bool [since 6.6]

このプロパティは、ユーザーがdisplayText を編集したときに、value が更新されるかどうかを保持します。デフォルト値はfalse です。このプロパティがtrue で、ユーザーが入力した値が有効で、スピンボックス [from,to] の範囲内にある場合、SpinBox の値が設定されます。このプロパティがfalse の場合、またはユーザーによって入力された値が境界の外にある場合、Enter キーまたは Return キーが押されるか、入力フィールドのフォーカスが失われるまで、値は更新されません。

このプロパティはQt 6.6で導入されました。

editable およびdisplayTextも参照して ください。


stepSize : int

このプロパティは、ステップサイズを保持します。デフォルト値は1 です。

increase() およびdecrease() も参照して ください。


textFromValue : function

このプロパティは、整数値をテキスト表示に変換する必要があるときに呼び出されるコールバック関数を保持します。

デフォルトの関数をオーバーライドして、指定された値のカスタム・テキストを表示することができます。これは、編集可能なスピンボックスと編集不可能なスピンボックスの両方に適用されます。たとえば、上下ボタンやマウス ホイールを使用して値をインクリメントおよびデクリメントする場合、新しい値はこの関数を使用して表示テキストに変換されます。

コールバック関数のシグネチャはstring function(value, locale) です。この関数は1つまたは2つの引数を持つことができ、最初の引数は変換される値で、オプションの2番目の引数は、該当する場合、変換に使用されるロケールです。

デフォルトの実装では、Number.toLocaleString() を使用して変換を行います:

textFromValue: function(value, locale) { return Number(value).toLocaleString(locale, 'f', 0); }

注意: 編集可能なスピンボックスにカスタムtextFromValue 実装を適用する場合、カスタムテキストを整数値に変換するために、マッチするvalueFromText 実装を提供する必要があります。

valueFromTextvalidatorlocaleも参照してください


to : int

このプロパティは、範囲の終了値を保持します。デフォルト値は99 です。

from およびvalueも参照して ください。


up group

up.hovered : bool

up.implicitIndicatorHeight : real

up.implicitIndicatorWidth : real

up.indicator : Item

up.pressed : bool

こ れ ら のプ ロ パテ ィ は、 上向 き イ ン ジケー タ 項目 と 、 それが押 さ れてい る か、 ま たはホバー さ れてい る か を保持 し ます。up.hovered プロパティはQtQuick.Controls 2.1 で導入され、up.implicitIndicatorWidthup.implicitIndicatorHeight プロパティはQtQuick.Controls 2.5 で導入されました。

increase()も参照


validator : Validator

このプロパティは、編集可能なスピンボックスの入力テキストバリデータを保持します。デフォルトでは、SpinBoxIntValidator を使用して整数の入力を受け付けます。

SpinBox {
    id: control
    validator: IntValidator {
        locale: control.locale.name
        bottom: Math.min(control.from, control.to)
        top: Math.max(control.from, control.to)
    }
}

editable,textFromValue,valueFromText,locale,入力テキストの検証も参照して ください。


value : int

このプロパティは、from -to の範囲の値を保持します。デフォルト値は0 です。


valueFromText : function

このプロパティは、入力テキストを整数値に変換する必要があるときに呼び出されるコールバック関数を保持します。

この関数をオーバーライドする必要があるのは、編集可能なスピンボックスでtextFromValue がオーバーライドされた場合のみです。

コールバック関数のシグネチャはint function(text, locale) です。この関数は1つまたは2つの引数を持つことができ、最初の引数は変換するテキストで、オプションの2つ目の引数は変換に使用するロケールです(該当する場合)。

デフォルトの実装では、Number.fromLocaleString() を使用して変換を行います:

valueFromText: function(text, locale) { return Number.fromLocaleString(locale, text); }

注意: 編集可能なスピンボックスにカスタムtextFromValue 実装を適用する場合、カスタムテキストを整数値に変換して戻すことができるように、一致するvalueFromText 実装を提供する必要があります。

textFromValuevalidatorlocaleも参照してください


wrap : bool [since QtQuick.Controls 2.3 (Qt 5.10)]

このプロパティは、スピンボックスがラップするかどうかを保持します。デフォルト値はfalse です。

wrap がtrue の場合、to を過ぎると値はfrom に変わり、その逆も同様です。

このプロパティは QtQuick.Controls 2.3 (Qt 5.10) で導入されました。


シグナルの説明

[since QtQuick.Controls 2.2 (Qt 5.9)] valueModified()

このシグナルは、スピンボックスの値が、タッチ、マウス、ホイール、キーのいずれかによって、ユーザーによってインタラクティブに変更されたときに発行されます。キーボードによる対話の場合、このシグナルはテキストが受け入れられたとき、つまりエンターキーまたはリターンキーが押されたとき、または入力フィールドがフォーカスを失ったときにのみ発行されます。

注: 対応するハンドラはonValueModified です。

このシグナルは QtQuick.Controls 2.2 (Qt 5.9) で導入されました。


メソッドの説明

void decrease()

stepSize 、またはstepSize が定義されていない場合は1 だけ値を減らします。

stepSizeも参照してください


void increase()

stepSize 、またはstepSize が定義されていない場合は1 だけ値を増やします。

stepSizeも参照して ください。


本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。