DoubleSpinBox QML Type
允许用户从一组预设浮点数值中进行选择。更多
| Import Statement: | import QtQuick.Controls |
| Since: | Qt 6.11 |
| Inherits: |
属性
- decimals : int
- displayText : string
- down
- down.hovered : bool
- down.implicitIndicatorHeight : real
- down.implicitIndicatorWidth : real
- down.indicator : Item
- down.pressed : bool
- editable : bool
- from : double
- inputMethodComposing : bool
- inputMethodHints : flags
(since QtQuick.Controls 2.2 (Qt 5.9)) - stepSize : double
- textFromValue : function
- to : int
- up
- up.hovered : bool
- up.implicitIndicatorHeight : real
- up.implicitIndicatorWidth : real
- up.indicator : Item
- up.pressed : bool
- validator : Validator
- value : double
- valueFromText : function
- wrap : bool
(since QtQuick.Controls 2.3 (Qt 5.10))
信号
方法
详细说明

DoubleSpinBox 与SpinBox 相似,不同之处在于它支持双数值而非整数。用户可以通过点击向上或向下指示按钮,或按键盘上的向上或向下键来选择数值。作为选项,DoubleSpinBox 也可以设置为editable ,这样用户就可以在输入框中输入文本值。
默认情况下,DoubleSpinBox 提供的离散值范围为[0.00-99.99] ,stepSize 为1.0 。
DoubleSpinBox { id: doubleSpinBox from: 0 value: 1.1 to: 100 stepSize: Math.pow(10, -decimals) decimals: 2 editable: true anchors.centerIn: parent }
另请参阅 SpinBox,Tumbler,自定义 DoubleSpinBox 和 Qt Quick 控件中的焦点管理。
属性文档
decimals : int
该属性表示自旋盒在显示和解释双倍值时使用的小数位数。
默认值为2 。
警告: 由于双倍类型的限制,decimals 的最大值是DBL_MAX_10_EXP + DBL_DIG (323)。
displayText : string [read-only]
该属性用于保存自旋框的文本值。
该属性的值基于textFromValue 和locale ,并等于:
let text = spinBox.textFromValue(spinBox.value, spinBox.decimals, spinBox.locale)
另请参见 textFromValue 。
down group
down.hovered : bool
down.implicitIndicatorHeight : real
down.implicitIndicatorWidth : real
down.indicator : Item
down.pressed : bool
该分组属性包含向下指示符项目及其相关属性。
另请参见 decrease()。
editable : bool
该属性用于确定自旋框是否可编辑。默认值为false 。
另请参见 validator 。
from : double
该属性保存范围的起始值。默认值为0.0 。
inputMethodComposing : bool [read-only]
此属性表示可编辑的自旋框是否有来自输入法的部分文本输入。
在合成时,输入法可能会依赖来自自旋框的鼠标或按键事件来编辑或提交部分文本。此属性可用于确定何时禁用可能干扰输入法正确运行的事件处理程序。
inputMethodHints : flags [since QtQuick.Controls 2.2 (Qt 5.9)]
该属性为输入法提供有关旋转框预期内容和操作方法的提示。
默认值为Qt.ImhDigitsOnly 。
该值是标志的位数组合,如果没有设置提示,则为Qt.ImhNone 。
可改变行为的标志有
- Qt.ImhHiddenText - 字符应被隐藏,通常用于输入密码。
- Qt.ImhSensitiveData - 输入的文本不应由 Active 输入法存储在任何持久性存储中,如预测用户字典。
- 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) 中引入。
stepSize : double
该属性表示步长。默认值为1.0 。
textFromValue : function
该属性包含一个回调函数,每当需要将 double 值转换为显示文本时,就会调用该函数。
默认函数可以重载,以显示给定值的自定义文本。这既适用于可编辑的自旋框,也适用于不可编辑的自旋框;例如,当使用上下按钮或鼠标滚轮递增或递减数值时,新数值将使用此函数转换为显示文本。
回调函数的签名是string function(value, decimals, locale) 。该函数可以有两个或三个参数,其中第一个参数是要转换的值,第二个参数是小数点后的数字,可选的第三个参数是转换时应使用的本地语言(如果适用)。
默认实现使用Number.toLocaleString() 进行转换:
textFromValue: function(value, decimals, locale) { return Number(value).toLocaleString(locale, 'f', decimals); }
注意: 在为可编辑的自旋框应用自定义textFromValue 实现时,必须提供匹配的valueFromText 实现,以便将自定义文本转换回双倍值。
另请参阅 valueFromText,validator, 和locale 。
to : int
该属性用于保存范围的终值。默认值为2 。
up group
up.hovered : bool
up.implicitIndicatorHeight : real
up.implicitIndicatorWidth : real
up.indicator : Item
up.pressed : bool
该分组属性包含向上指示符项目及其相关属性。
另请参见 increase()。
validator : Validator
该属性用于保存可编辑自旋框的输入文本验证器。默认情况下,DoubleSpinBox 使用DoubleValidator 接受双数字输入。
DoubleSpinBox { id: control validator: DoubleValidator { locale: control.locale.name bottom: Math.min(control.from, control.to) top: Math.max(control.from, control.to) } }
另请参阅 editable,textFromValue,valueFromText,locale 和验证输入文本。
value : double
该属性的值范围为from -to 。默认值为0.0 。
valueFromText : function
该属性包含一个回调函数,每当需要将输入文本转换为双数值时,就会调用该函数。
只有当textFromValue 被重载为可编辑的自旋框时,才需要重载该函数。
回调函数的签名是int function(text, locale) 。该函数可以有一个或两个参数,其中第一个参数是要转换的文本,可选的第二个参数是转换时应使用的本地语言(如果适用)。
默认实现使用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) 中引入。
信号文档
valueModified()
当用户通过触摸、鼠标、滚轮或按键对旋转框的值进行交互式修改时,就会发出该信号。在通过键盘交互的情况下,只有当文本被接受(即按下回车键或回车键或输入框失去焦点)时,才会发出该信号。
注: 相应的处理程序是onValueModified 。
方法文档
void decrease()
通过stepSize 或1 (如果stepSize 没有定义)减少数值。
另请参阅 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.