SpinBox QML Type
ユーザーがプリセット値のセットから選択できるようにします。詳細...
Import Statement: | import QtQuick.Controls |
Inherits: |
プロパティ
- displayText : string
(since QtQuick.Controls 2.4 (Qt 5.11))
- down
- down.hovered : bool
- down.implicitIndicatorHeight : real
- down.implicitIndicatorWidth : real
- down.indicator : Item
- down.pressed : bool
- editable : bool
- from : int
- inputMethodComposing : bool
(since QtQuick.Controls 2.2 (Qt 5.9))
- inputMethodHints : flags
(since QtQuick.Controls 2.2 (Qt 5.9))
- live : bool
(since 6.6)
- stepSize : int
- textFromValue : function
- to : int
- up
- up.hovered : bool
- up.implicitIndicatorHeight : real
- up.implicitIndicatorWidth : real
- up.indicator : Item
- up.pressed : bool
- validator : Validator
- value : int
- valueFromText : function
- wrap : bool
(since QtQuick.Controls 2.3 (Qt 5.10))
シグナル
- valueModified()
(since QtQuick.Controls 2.2 (Qt 5.9))
メソッド
詳細説明
SpinBox は、上下インジケータ ボタンをクリックするか、キーボードの上下を押すことによって、ユーザーが整数値を選択できるようにします。オプションで、SpinBox はeditable にすることもでき、ユーザーは入力フィールドにテキスト値を入力できます。
デフォルトでは、SpinBox は[0-99]
stepSize 1
の範囲の離散値を提供します。
SpinBox { value: 50 }
カスタム値
SpinBox は整数値で動作しますが、任意の入力値を受け入れるようにカスタマイズできます。次のスニペットは、validator 、textFromValue 、valueFromText を使用してデフォルトの動作をカスタマイズする方法を示しています。
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]) } }
Tumbler 、SpinBox のカスタマイズ、Qt クイックコントロールのフォーカス管理も参照してください 。
プロパティ ドキュメント
displayText : string |
このプロパティは、スピンボックスのテキスト値を保持します。
このプロパティの値は、textFromValue とlocale に基づいています:
var text = spinBox.textFromValue(spinBox.value, spinBox.locale)
このプロパティは、QtQuick.Controls 2.4(Qt 5.11)で導入されました。
textFromValueも参照してください 。
inputMethodComposing : bool |
こ のプ ロパテ ィ は、 編集可能 ス ピ ン ボ ッ ク ス に入力 メ ソ ッ ド か ら の部分的なテ キ ス ト 入力があ る か ど う か を保持 し ます。
入力メソッドは、入力中に、部分テキストを編集またはコミットするために、スピン ボックスからのマウス イベントまたはキー イベントに依存する場合があります。このプロパティは、入力メソッドの正しい動作を妨げる可能性のあるイベント ハンドラを無効にするタイミングを決定するために使用できます。
このプロパティは、QtQuick.Controls 2.2(Qt 5.9)で導入されました。
inputMethodHints : flags |
このプロパティは、入力メソッドに対して、スピンボックスの予想される内容とその操作方法に関するヒントを提供します。
デフォルト値は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 |
このプロパティは、ユーザーがdisplayText を編集したときに、value が更新されるかどうかを保持します。デフォルト値はfalse
です。このプロパティがtrue
で、ユーザーが入力した値が有効で、スピンボックス [from,to] の範囲内にある場合、SpinBox の値が設定されます。このプロパティがfalse
の場合、またはユーザーによって入力された値が境界の外にある場合、Enter キーまたは Return キーが押されるか、入力フィールドのフォーカスが失われるまで、値は更新されません。
このプロパティはQt 6.6で導入されました。
editable およびdisplayTextも参照して ください。
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も参照してください 。
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 |
シグナルの説明
|
このシグナルは、スピンボックスの値が、タッチ、マウス、ホイール、キーのいずれかによって、ユーザーによってインタラクティブに変更されたときに発行されます。キーボードによる対話の場合、このシグナルはテキストが受け入れられたとき、つまりエンターキーまたはリターンキーが押されたとき、または入力フィールドがフォーカスを失ったときにのみ発行されます。
注: 対応するハンドラはonValueModified
です。
このシグナルは QtQuick.Controls 2.2 (Qt 5.9) で導入されました。
メソッドの説明
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。