123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335 |
- :github_url: hide
- .. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
- .. DO NOT EDIT THIS FILE, but the Button.xml source instead.
- .. The source is found in doc/classes or modules/<name>/doc_classes.
- .. _class_Button:
- Button
- ======
- **Inherits:** :ref:`BaseButton<class_BaseButton>` **<** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
- **Inherited By:** :ref:`CheckBox<class_CheckBox>`, :ref:`CheckButton<class_CheckButton>`, :ref:`ColorPickerButton<class_ColorPickerButton>`, :ref:`MenuButton<class_MenuButton>`, :ref:`OptionButton<class_OptionButton>`, :ref:`ToolButton<class_ToolButton>`
- Standard themed Button.
- Description
- -----------
- Button is the standard themed button. It can contain text and an icon, and will display them according to the current :ref:`Theme<class_Theme>`.
- **Example of creating a button and assigning an action when pressed by code:**
- ::
- func _ready():
- var button = Button.new()
- button.text = "Click me"
- button.connect("pressed", self, "_button_pressed")
- add_child(button)
-
- func _button_pressed():
- print("Hello world!")
- Buttons (like all Control nodes) can also be created in the editor, but some situations may require creating them from code.
- See also :ref:`BaseButton<class_BaseButton>` which contains common properties and methods associated with this node.
- **Note:** Buttons do not interpret touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use :ref:`TouchScreenButton<class_TouchScreenButton>` for buttons that trigger gameplay movement or actions, as :ref:`TouchScreenButton<class_TouchScreenButton>` supports multitouch.
- Tutorials
- ---------
- - `2D Dodge The Creeps Demo <https://godotengine.org/asset-library/asset/515>`__
- - `OS Test Demo <https://godotengine.org/asset-library/asset/677>`__
- Properties
- ----------
- +-----------------------------------------+-------------------------------------------------------+-----------+
- | :ref:`TextAlign<enum_Button_TextAlign>` | :ref:`align<class_Button_property_align>` | ``1`` |
- +-----------------------------------------+-------------------------------------------------------+-----------+
- | :ref:`bool<class_bool>` | :ref:`clip_text<class_Button_property_clip_text>` | ``false`` |
- +-----------------------------------------+-------------------------------------------------------+-----------+
- | :ref:`bool<class_bool>` | :ref:`expand_icon<class_Button_property_expand_icon>` | ``false`` |
- +-----------------------------------------+-------------------------------------------------------+-----------+
- | :ref:`bool<class_bool>` | :ref:`flat<class_Button_property_flat>` | ``false`` |
- +-----------------------------------------+-------------------------------------------------------+-----------+
- | :ref:`Texture<class_Texture>` | :ref:`icon<class_Button_property_icon>` | |
- +-----------------------------------------+-------------------------------------------------------+-----------+
- | :ref:`String<class_String>` | :ref:`text<class_Button_property_text>` | ``""`` |
- +-----------------------------------------+-------------------------------------------------------+-----------+
- Theme Properties
- ----------------
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_color<class_Button_theme_color_font_color>` | ``Color( 0.88, 0.88, 0.88, 1 )`` |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_color_disabled<class_Button_theme_color_font_color_disabled>` | ``Color( 0.9, 0.9, 0.9, 0.2 )`` |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_color_focus<class_Button_theme_color_font_color_focus>` | ``Color( 0.94, 0.94, 0.94, 1 )`` |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_color_hover<class_Button_theme_color_font_color_hover>` | ``Color( 0.94, 0.94, 0.94, 1 )`` |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_color_pressed<class_Button_theme_color_font_color_pressed>` | ``Color( 1, 1, 1, 1 )`` |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`int<class_int>` | :ref:`hseparation<class_Button_theme_constant_hseparation>` | ``2`` |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`Font<class_Font>` | :ref:`font<class_Button_theme_font_font>` | |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`disabled<class_Button_theme_style_disabled>` | |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`focus<class_Button_theme_style_focus>` | |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`hover<class_Button_theme_style_hover>` | |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`normal<class_Button_theme_style_normal>` | |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`pressed<class_Button_theme_style_pressed>` | |
- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+
- Enumerations
- ------------
- .. _enum_Button_TextAlign:
- .. _class_Button_constant_ALIGN_LEFT:
- .. _class_Button_constant_ALIGN_CENTER:
- .. _class_Button_constant_ALIGN_RIGHT:
- enum **TextAlign**:
- - **ALIGN_LEFT** = **0** --- Align the text to the left.
- - **ALIGN_CENTER** = **1** --- Align the text to the center.
- - **ALIGN_RIGHT** = **2** --- Align the text to the right.
- Property Descriptions
- ---------------------
- .. _class_Button_property_align:
- - :ref:`TextAlign<enum_Button_TextAlign>` **align**
- +-----------+-----------------------+
- | *Default* | ``1`` |
- +-----------+-----------------------+
- | *Setter* | set_text_align(value) |
- +-----------+-----------------------+
- | *Getter* | get_text_align() |
- +-----------+-----------------------+
- Text alignment policy for the button's text, use one of the :ref:`TextAlign<enum_Button_TextAlign>` constants.
- ----
- .. _class_Button_property_clip_text:
- - :ref:`bool<class_bool>` **clip_text**
- +-----------+----------------------+
- | *Default* | ``false`` |
- +-----------+----------------------+
- | *Setter* | set_clip_text(value) |
- +-----------+----------------------+
- | *Getter* | get_clip_text() |
- +-----------+----------------------+
- When this property is enabled, text that is too large to fit the button is clipped, when disabled the Button will always be wide enough to hold the text.
- ----
- .. _class_Button_property_expand_icon:
- - :ref:`bool<class_bool>` **expand_icon**
- +-----------+------------------------+
- | *Default* | ``false`` |
- +-----------+------------------------+
- | *Setter* | set_expand_icon(value) |
- +-----------+------------------------+
- | *Getter* | is_expand_icon() |
- +-----------+------------------------+
- When enabled, the button's icon will expand/shrink to fit the button's size while keeping its aspect.
- ----
- .. _class_Button_property_flat:
- - :ref:`bool<class_bool>` **flat**
- +-----------+-----------------+
- | *Default* | ``false`` |
- +-----------+-----------------+
- | *Setter* | set_flat(value) |
- +-----------+-----------------+
- | *Getter* | is_flat() |
- +-----------+-----------------+
- Flat buttons don't display decoration.
- ----
- .. _class_Button_property_icon:
- - :ref:`Texture<class_Texture>` **icon**
- +----------+------------------------+
- | *Setter* | set_button_icon(value) |
- +----------+------------------------+
- | *Getter* | get_button_icon() |
- +----------+------------------------+
- Button's icon, if text is present the icon will be placed before the text.
- To edit margin and spacing of the icon, use ``hseparation`` theme property of ``Button`` and ``content_margin_*`` properties of the used :ref:`StyleBox<class_StyleBox>`\ es.
- ----
- .. _class_Button_property_text:
- - :ref:`String<class_String>` **text**
- +-----------+-----------------+
- | *Default* | ``""`` |
- +-----------+-----------------+
- | *Setter* | set_text(value) |
- +-----------+-----------------+
- | *Getter* | get_text() |
- +-----------+-----------------+
- The button's text that will be displayed inside the button's area.
- Theme Property Descriptions
- ---------------------------
- .. _class_Button_theme_color_font_color:
- - :ref:`Color<class_Color>` **font_color**
- +-----------+----------------------------------+
- | *Default* | ``Color( 0.88, 0.88, 0.88, 1 )`` |
- +-----------+----------------------------------+
- Default text :ref:`Color<class_Color>` of the ``Button``.
- ----
- .. _class_Button_theme_color_font_color_disabled:
- - :ref:`Color<class_Color>` **font_color_disabled**
- +-----------+---------------------------------+
- | *Default* | ``Color( 0.9, 0.9, 0.9, 0.2 )`` |
- +-----------+---------------------------------+
- Text :ref:`Color<class_Color>` used when the ``Button`` is disabled.
- ----
- .. _class_Button_theme_color_font_color_focus:
- - :ref:`Color<class_Color>` **font_color_focus**
- +-----------+----------------------------------+
- | *Default* | ``Color( 0.94, 0.94, 0.94, 1 )`` |
- +-----------+----------------------------------+
- Text :ref:`Color<class_Color>` used when the ``Button`` is focused. Only replaces the normal text color of the button. Disabled, hovered, and pressed states take precedence over this color.
- ----
- .. _class_Button_theme_color_font_color_hover:
- - :ref:`Color<class_Color>` **font_color_hover**
- +-----------+----------------------------------+
- | *Default* | ``Color( 0.94, 0.94, 0.94, 1 )`` |
- +-----------+----------------------------------+
- Text :ref:`Color<class_Color>` used when the ``Button`` is being hovered.
- ----
- .. _class_Button_theme_color_font_color_pressed:
- - :ref:`Color<class_Color>` **font_color_pressed**
- +-----------+-------------------------+
- | *Default* | ``Color( 1, 1, 1, 1 )`` |
- +-----------+-------------------------+
- Text :ref:`Color<class_Color>` used when the ``Button`` is being pressed.
- ----
- .. _class_Button_theme_constant_hseparation:
- - :ref:`int<class_int>` **hseparation**
- +-----------+-------+
- | *Default* | ``2`` |
- +-----------+-------+
- The horizontal space between ``Button``'s icon and text.
- ----
- .. _class_Button_theme_font_font:
- - :ref:`Font<class_Font>` **font**
- :ref:`Font<class_Font>` of the ``Button``'s text.
- ----
- .. _class_Button_theme_style_disabled:
- - :ref:`StyleBox<class_StyleBox>` **disabled**
- :ref:`StyleBox<class_StyleBox>` used when the ``Button`` is disabled.
- ----
- .. _class_Button_theme_style_focus:
- - :ref:`StyleBox<class_StyleBox>` **focus**
- :ref:`StyleBox<class_StyleBox>` used when the ``Button`` is focused. It is displayed over the current :ref:`StyleBox<class_StyleBox>`, so using :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` will just disable the focus visual effect.
- ----
- .. _class_Button_theme_style_hover:
- - :ref:`StyleBox<class_StyleBox>` **hover**
- :ref:`StyleBox<class_StyleBox>` used when the ``Button`` is being hovered.
- ----
- .. _class_Button_theme_style_normal:
- - :ref:`StyleBox<class_StyleBox>` **normal**
- Default :ref:`StyleBox<class_StyleBox>` for the ``Button``.
- ----
- .. _class_Button_theme_style_pressed:
- - :ref:`StyleBox<class_StyleBox>` **pressed**
- :ref:`StyleBox<class_StyleBox>` used when the ``Button`` is being pressed.
- .. |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.)`
|