このページでは

SpinBox QML Type

ユーザーがあらかじめ設定された値の中から選択できるようにします。詳細...

Import Statement: import QtQuick.Controls
Inherits:

Control

プロパティ

信号

方法

詳細説明

数値とボタンが付いたスピンボックス

SpinBox を使用すると、ユーザーは上向きまたは下向きのインジケーターボタンをクリックするか、キーボードの上下キーを押すことで、整数値を選択できます。また、必要に応じて SpinBox をeditable に設定することもでき、その場合はユーザーが入力フィールドにテキスト値を入力できるようになります。

デフォルトでは、SpinBoxは[0-99] の範囲内の離散値を提供し、stepSize は1 に設定されています。

SpinBox {
    value: 50
}

浮動小数点値の場合は、DoubleSpinBox を使用してください。

カスタム値

テキスト値を表示するスピンボックス

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

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

    property list<string> 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 {
    id: spinBox
    from: -100
    value: 11
    to: 100
    editable: true
    anchors.centerIn: parent

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

    readonly property regexp numberExtractionRegExp: /\D*?(-?\d*\.?\d*)\D*$/

    validator: RegularExpressionValidator { regularExpression: numberExtractionRegExp }

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

    valueFromText: function(text, locale) {
        return Number.fromLocaleString(locale, numberExtractionRegExp.exec(text)[1])
    }
}

関連項目: Tumbler 、SpinBoxのカスタマイズ、 Qt Quick コントロールにおけるフォーカス管理、およびDoubleSpinBox 。

プロパティのドキュメント

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

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

このプロパティの値は、textFromValue およびlocale に基づいており、以下の式で求められます。

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.implicitIndicatorWidth およびdown.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 - いずれかの排他フラグが使用されている場合、このマスクは 0 以外の値を返します。

このプロパティは、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 実装も提供する必要があります。

valueFromText 、validator 、およびlocaleも参照してください 。

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.implicitIndicatorWidth およびup.implicitIndicatorHeight プロパティはQtQuick.Controls 2.5で導入されました。

increase()も参照してください 。

validator : Validator

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

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 実装を提供する必要があります。

textFromValue 、validator 、およびlocaleも参照してください 。

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

このシグナルは、ユーザーがタッチ、マウス、ホイール、またはキー操作のいずれかによって、スピンボックスの値をインタラクティブに変更した際に発火します。キーボードによる操作の場合、このシグナルはテキストが確定されたとき、つまりEnterキーまたはReturnキーが押されたとき、あるいは入力フィールドのフォーカスが外れたときにのみ発火します。

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

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

メソッドのドキュメント

void decrease()

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

stepSizeも参照してください 。

void increase()

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

stepSizeも参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.