このページでは

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

TumblerSpinBox のカスタマイズ Qt Quick Controls のフォーカス管理も参照してください

プ ロ パテ ィ 文書

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 : double

このプロパティは範囲の開始値を保持する。デフォルト値は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 - 入力されたテキストは、Active Inputメソッドによって、予測辞書のような永続的なストレージに保存されません。
  • 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 : double

このプロパティはステップサイズを保持する。デフォルト値は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

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

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) で導入されました。

Signal ドキュメント

[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.