: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//doc_classes. .. _class_Button: Button ====== **Inherits:** :ref:`BaseButton` **<** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` **Inherited By:** :ref:`CheckBox`, :ref:`CheckButton`, :ref:`ColorPickerButton`, :ref:`MenuButton`, :ref:`OptionButton`, :ref:`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`. **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` 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` for buttons that trigger gameplay movement or actions, as :ref:`TouchScreenButton` supports multitouch. Tutorials --------- - `2D Dodge The Creeps Demo `__ - `OS Test Demo `__ Properties ---------- +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`TextAlign` | :ref:`align` | ``1`` | +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`clip_text` | ``false`` | +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`expand_icon` | ``false`` | +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`flat` | ``false`` | +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`Texture` | :ref:`icon` | | +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`String` | :ref:`text` | ``""`` | +-----------------------------------------+-------------------------------------------------------+-----------+ Theme Properties ---------------- +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`Color` | :ref:`font_color` | ``Color( 0.88, 0.88, 0.88, 1 )`` | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`Color` | :ref:`font_color_disabled` | ``Color( 0.9, 0.9, 0.9, 0.2 )`` | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`Color` | :ref:`font_color_focus` | ``Color( 0.94, 0.94, 0.94, 1 )`` | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`Color` | :ref:`font_color_hover` | ``Color( 0.94, 0.94, 0.94, 1 )`` | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`Color` | :ref:`font_color_pressed` | ``Color( 1, 1, 1, 1 )`` | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`int` | :ref:`hseparation` | ``2`` | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`Font` | :ref:`font` | | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`StyleBox` | :ref:`disabled` | | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`StyleBox` | :ref:`focus` | | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`StyleBox` | :ref:`hover` | | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`StyleBox` | :ref:`normal` | | +---------------------------------+--------------------------------------------------------------------------+----------------------------------+ | :ref:`StyleBox` | :ref:`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` **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` constants. ---- .. _class_Button_property_clip_text: - :ref:`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` **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` **flat** +-----------+-----------------+ | *Default* | ``false`` | +-----------+-----------------+ | *Setter* | set_flat(value) | +-----------+-----------------+ | *Getter* | is_flat() | +-----------+-----------------+ Flat buttons don't display decoration. ---- .. _class_Button_property_icon: - :ref:`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`\ es. ---- .. _class_Button_property_text: - :ref:`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` **font_color** +-----------+----------------------------------+ | *Default* | ``Color( 0.88, 0.88, 0.88, 1 )`` | +-----------+----------------------------------+ Default text :ref:`Color` of the ``Button``. ---- .. _class_Button_theme_color_font_color_disabled: - :ref:`Color` **font_color_disabled** +-----------+---------------------------------+ | *Default* | ``Color( 0.9, 0.9, 0.9, 0.2 )`` | +-----------+---------------------------------+ Text :ref:`Color` used when the ``Button`` is disabled. ---- .. _class_Button_theme_color_font_color_focus: - :ref:`Color` **font_color_focus** +-----------+----------------------------------+ | *Default* | ``Color( 0.94, 0.94, 0.94, 1 )`` | +-----------+----------------------------------+ Text :ref:`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` **font_color_hover** +-----------+----------------------------------+ | *Default* | ``Color( 0.94, 0.94, 0.94, 1 )`` | +-----------+----------------------------------+ Text :ref:`Color` used when the ``Button`` is being hovered. ---- .. _class_Button_theme_color_font_color_pressed: - :ref:`Color` **font_color_pressed** +-----------+-------------------------+ | *Default* | ``Color( 1, 1, 1, 1 )`` | +-----------+-------------------------+ Text :ref:`Color` used when the ``Button`` is being pressed. ---- .. _class_Button_theme_constant_hseparation: - :ref:`int` **hseparation** +-----------+-------+ | *Default* | ``2`` | +-----------+-------+ The horizontal space between ``Button``'s icon and text. ---- .. _class_Button_theme_font_font: - :ref:`Font` **font** :ref:`Font` of the ``Button``'s text. ---- .. _class_Button_theme_style_disabled: - :ref:`StyleBox` **disabled** :ref:`StyleBox` used when the ``Button`` is disabled. ---- .. _class_Button_theme_style_focus: - :ref:`StyleBox` **focus** :ref:`StyleBox` used when the ``Button`` is focused. It is displayed over the current :ref:`StyleBox`, so using :ref:`StyleBoxEmpty` will just disable the focus visual effect. ---- .. _class_Button_theme_style_hover: - :ref:`StyleBox` **hover** :ref:`StyleBox` used when the ``Button`` is being hovered. ---- .. _class_Button_theme_style_normal: - :ref:`StyleBox` **normal** Default :ref:`StyleBox` for the ``Button``. ---- .. _class_Button_theme_style_pressed: - :ref:`StyleBox` **pressed** :ref:`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.)`