An input field for numbers.
[SpinBox] is a numerical input text field. It allows entering integers and floating-point numbers.
[b]Example:[/b] Create a [SpinBox], disable its context menu and set its text alignment to right.
[codeblocks]
[gdscript]
var spin_box = SpinBox.new()
add_child(spin_box)
var line_edit = spin_box.get_line_edit()
line_edit.context_menu_enabled = false
spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_RIGHT
[/gdscript]
[csharp]
var spinBox = new SpinBox();
AddChild(spinBox);
var lineEdit = spinBox.GetLineEdit();
lineEdit.ContextMenuEnabled = false;
spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right;
[/csharp]
[/codeblocks]
See [Range] class for more options over the [SpinBox].
[b]Note:[/b] With the [SpinBox]'s context menu disabled, you can right-click the bottom half of the spinbox to set the value to its minimum, while right-clicking the top half sets the value to its maximum.
[b]Note:[/b] [SpinBox] relies on an underlying [LineEdit] node. To theme a [SpinBox]'s background, add theme items for [LineEdit] and customize them. The [LineEdit] has the [code]SpinBoxInnerLineEdit[/code] theme variation, so that you can give it a distinct appearance from regular [LineEdit]s.
[b]Note:[/b] If you want to implement drag and drop for the underlying [LineEdit], you can use [method Control.set_drag_forwarding] on the node returned by [method get_line_edit].
Applies the current value of this [SpinBox].
Returns the [LineEdit] instance from this [SpinBox]. You can use it to access properties and methods of [LineEdit].
[b]Warning:[/b] This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their [member CanvasItem.visible] property.
Changes the alignment of the underlying [LineEdit].
If not [code]0[/code], [member Range.value] will always be rounded to a multiple of [member custom_arrow_step] when interacting with the arrow buttons of the [SpinBox].
If [code]true[/code], the [SpinBox] will be editable. Otherwise, it will be read only.
Adds the specified prefix string before the numerical value of the [SpinBox].
If [code]true[/code], the [SpinBox] will select the whole text when the [LineEdit] gains focus. Clicking the up and down arrows won't trigger this behavior.
Adds the specified suffix string after the numerical value of the [SpinBox].
Sets the value of the [Range] for this [SpinBox] when the [LineEdit] text is [i]changed[/i] instead of [i]submitted[/i]. See [signal LineEdit.text_changed] and [signal LineEdit.text_submitted].
Down button icon modulation color, when the button is disabled.
Down button icon modulation color, when the button is hovered.
Down button icon modulation color.
Down button icon modulation color, when the button is being pressed.
Up button icon modulation color, when the button is disabled.
Up button icon modulation color, when the button is hovered.
Up button icon modulation color.
Up button icon modulation color, when the button is being pressed.
Vertical separation between the up and down buttons.
Width of the up and down buttons. If smaller than any icon set on the buttons, the respective icon may overlap neighboring elements. If smaller than [code]0[/code], the width is automatically adjusted from the icon size.
Width of the horizontal separation between the text input field ([LineEdit]) and the buttons.
If not [code]0[/code], the minimum button width corresponds to the widest of all icons set on those buttons, even if [theme_item buttons_width] is smaller.
Down button icon, displayed in the middle of the down (value-decreasing) button.
Down button icon when the button is disabled.
Down button icon when the button is hovered.
Down button icon when the button is being pressed.
Up button icon, displayed in the middle of the up (value-increasing) button.
Up button icon when the button is disabled.
Up button icon when the button is hovered.
Up button icon when the button is being pressed.
Single texture representing both the up and down buttons icons. It is displayed in the middle of the buttons and does not change upon interaction. It is recommended to use individual [theme_item up] and [theme_item down] graphics for better usability. This can also be used as additional decoration between the two buttons.
Background style of the down button.
Background style of the down button when disabled.
Background style of the down button when hovered.
Background style of the down button when being pressed.
[StyleBox] drawn in the space occupied by the separation between the input field and the buttons.
Background style of the up button.
Background style of the up button when disabled.
Background style of the up button when hovered.
Background style of the up button when being pressed.
[StyleBox] drawn in the space occupied by the separation between the up and down buttons.