Files
godot-docs/classes/class_spinbox.rst
2024-02-24 03:20:02 +00:00

294 lines
13 KiB
ReStructuredText

:github_url: hide
.. meta::
:keywords: number, numeric, input
.. DO NOT EDIT THIS FILE!!!
.. Generated automatically from Godot engine sources.
.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/SpinBox.xml.
.. _class_SpinBox:
SpinBox
=======
**Inherits:** :ref:`Range<class_Range>` **<** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
An input field for numbers.
.. rst-class:: classref-introduction-group
Description
-----------
**SpinBox** is a numerical input text field. It allows entering integers and floating point numbers.
\ **Example:**\
.. tabs::
.. code-tab:: 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
.. code-tab:: csharp
var spinBox = new SpinBox();
AddChild(spinBox);
var lineEdit = spinBox.GetLineEdit();
lineEdit.ContextMenuEnabled = false;
spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right;
The above code will create a **SpinBox**, disable context menu on it and set the text alignment to right.
See :ref:`Range<class_Range>` class for more options over the **SpinBox**.
\ **Note:** 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.
\ **Note:** **SpinBox** relies on an underlying :ref:`LineEdit<class_LineEdit>` node. To theme a **SpinBox**'s background, add theme items for :ref:`LineEdit<class_LineEdit>` and customize them.
\ **Note:** If you want to implement drag and drop for the underlying :ref:`LineEdit<class_LineEdit>`, you can use :ref:`Control.set_drag_forwarding<class_Control_method_set_drag_forwarding>` on the node returned by :ref:`get_line_edit<class_SpinBox_method_get_line_edit>`.
.. rst-class:: classref-reftable-group
Properties
----------
.. table::
:widths: auto
+-------------------------------------------------------------------+------------------------------------------------------------------------------+------------------------------------------------------------------------------+
| :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` | :ref:`alignment<class_SpinBox_property_alignment>` | ``0`` |
+-------------------------------------------------------------------+------------------------------------------------------------------------------+------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`custom_arrow_step<class_SpinBox_property_custom_arrow_step>` | ``0.0`` |
+-------------------------------------------------------------------+------------------------------------------------------------------------------+------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`editable<class_SpinBox_property_editable>` | ``true`` |
+-------------------------------------------------------------------+------------------------------------------------------------------------------+------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`prefix<class_SpinBox_property_prefix>` | ``""`` |
+-------------------------------------------------------------------+------------------------------------------------------------------------------+------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`select_all_on_focus<class_SpinBox_property_select_all_on_focus>` | ``false`` |
+-------------------------------------------------------------------+------------------------------------------------------------------------------+------------------------------------------------------------------------------+
| |bitfield|\[:ref:`SizeFlags<enum_Control_SizeFlags>`\] | size_flags_vertical | ``1`` (overrides :ref:`Control<class_Control_property_size_flags_vertical>`) |
+-------------------------------------------------------------------+------------------------------------------------------------------------------+------------------------------------------------------------------------------+
| :ref:`float<class_float>` | step | ``1.0`` (overrides :ref:`Range<class_Range_property_step>`) |
+-------------------------------------------------------------------+------------------------------------------------------------------------------+------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`suffix<class_SpinBox_property_suffix>` | ``""`` |
+-------------------------------------------------------------------+------------------------------------------------------------------------------+------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`update_on_text_changed<class_SpinBox_property_update_on_text_changed>` | ``false`` |
+-------------------------------------------------------------------+------------------------------------------------------------------------------+------------------------------------------------------------------------------+
.. rst-class:: classref-reftable-group
Methods
-------
.. table::
:widths: auto
+---------------------------------+----------------------------------------------------------------+
| |void| | :ref:`apply<class_SpinBox_method_apply>`\ (\ ) |
+---------------------------------+----------------------------------------------------------------+
| :ref:`LineEdit<class_LineEdit>` | :ref:`get_line_edit<class_SpinBox_method_get_line_edit>`\ (\ ) |
+---------------------------------+----------------------------------------------------------------+
.. rst-class:: classref-reftable-group
Theme Properties
----------------
.. table::
:widths: auto
+-----------------------------------+------------------------------------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`updown<class_SpinBox_theme_icon_updown>` |
+-----------------------------------+------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Property Descriptions
---------------------
.. _class_SpinBox_property_alignment:
.. rst-class:: classref-property
:ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` **alignment** = ``0``
.. rst-class:: classref-property-setget
- |void| **set_horizontal_alignment**\ (\ value\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>`\ )
- :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` **get_horizontal_alignment**\ (\ )
Changes the alignment of the underlying :ref:`LineEdit<class_LineEdit>`.
.. rst-class:: classref-item-separator
----
.. _class_SpinBox_property_custom_arrow_step:
.. rst-class:: classref-property
:ref:`float<class_float>` **custom_arrow_step** = ``0.0``
.. rst-class:: classref-property-setget
- |void| **set_custom_arrow_step**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_custom_arrow_step**\ (\ )
If not ``0``, :ref:`Range.value<class_Range_property_value>` will always be rounded to a multiple of :ref:`custom_arrow_step<class_SpinBox_property_custom_arrow_step>` when interacting with the arrow buttons of the **SpinBox**.
.. rst-class:: classref-item-separator
----
.. _class_SpinBox_property_editable:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **editable** = ``true``
.. rst-class:: classref-property-setget
- |void| **set_editable**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_editable**\ (\ )
If ``true``, the **SpinBox** will be editable. Otherwise, it will be read only.
.. rst-class:: classref-item-separator
----
.. _class_SpinBox_property_prefix:
.. rst-class:: classref-property
:ref:`String<class_String>` **prefix** = ``""``
.. rst-class:: classref-property-setget
- |void| **set_prefix**\ (\ value\: :ref:`String<class_String>`\ )
- :ref:`String<class_String>` **get_prefix**\ (\ )
Adds the specified prefix string before the numerical value of the **SpinBox**.
.. rst-class:: classref-item-separator
----
.. _class_SpinBox_property_select_all_on_focus:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **select_all_on_focus** = ``false``
.. rst-class:: classref-property-setget
- |void| **set_select_all_on_focus**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_select_all_on_focus**\ (\ )
If ``true``, the **SpinBox** will select the whole text when the :ref:`LineEdit<class_LineEdit>` gains focus. Clicking the up and down arrows won't trigger this behavior.
.. rst-class:: classref-item-separator
----
.. _class_SpinBox_property_suffix:
.. rst-class:: classref-property
:ref:`String<class_String>` **suffix** = ``""``
.. rst-class:: classref-property-setget
- |void| **set_suffix**\ (\ value\: :ref:`String<class_String>`\ )
- :ref:`String<class_String>` **get_suffix**\ (\ )
Adds the specified suffix string after the numerical value of the **SpinBox**.
.. rst-class:: classref-item-separator
----
.. _class_SpinBox_property_update_on_text_changed:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **update_on_text_changed** = ``false``
.. rst-class:: classref-property-setget
- |void| **set_update_on_text_changed**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_update_on_text_changed**\ (\ )
Sets the value of the :ref:`Range<class_Range>` for this **SpinBox** when the :ref:`LineEdit<class_LineEdit>` text is *changed* instead of *submitted*. See :ref:`LineEdit.text_changed<class_LineEdit_signal_text_changed>` and :ref:`LineEdit.text_submitted<class_LineEdit_signal_text_submitted>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Method Descriptions
-------------------
.. _class_SpinBox_method_apply:
.. rst-class:: classref-method
|void| **apply**\ (\ )
Applies the current value of this **SpinBox**.
.. rst-class:: classref-item-separator
----
.. _class_SpinBox_method_get_line_edit:
.. rst-class:: classref-method
:ref:`LineEdit<class_LineEdit>` **get_line_edit**\ (\ )
Returns the :ref:`LineEdit<class_LineEdit>` instance from this **SpinBox**. You can use it to access properties and methods of :ref:`LineEdit<class_LineEdit>`.
\ **Warning:** 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 :ref:`CanvasItem.visible<class_CanvasItem_property_visible>` property.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Theme Property Descriptions
---------------------------
.. _class_SpinBox_theme_icon_updown:
.. rst-class:: classref-themeproperty
:ref:`Texture2D<class_Texture2D>` **updown**
Sets a custom :ref:`Texture2D<class_Texture2D>` for up and down arrows of the **SpinBox**.
.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
.. |void| replace:: :abbr:`void (No return value.)`