:github_url: hide .. _class_BaseButton: BaseButton ========== **Eredita:** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` **Ereditato da:** :ref:`Button`, :ref:`LinkButton`, :ref:`TextureButton` Classe di base astratta per i pulsanti della GUI. .. rst-class:: classref-introduction-group Descrizione ---------------------- **BaseButton** è una classe di base astratta per pulsanti della GUI. Da solo non visualizza nulla. .. rst-class:: classref-reftable-group Proprietà ------------------ .. table:: :widths: auto +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`ActionMode` | :ref:`action_mode` | ``1`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`ButtonGroup` | :ref:`button_group` | | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | |bitfield|\[:ref:`MouseButtonMask`\] | :ref:`button_mask` | ``1`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`button_pressed` | ``false`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`disabled` | ``false`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`FocusMode` | focus_mode | ``2`` (overrides :ref:`Control`) | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`keep_pressed_outside` | ``false`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`Shortcut` | :ref:`shortcut` | | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`shortcut_feedback` | ``true`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`shortcut_in_tooltip` | ``true`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`toggle_mode` | ``false`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ .. rst-class:: classref-reftable-group Metodi ------------ .. table:: :widths: auto +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_pressed`\ (\ ) |virtual| | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_toggled`\ (\ toggled_on\: :ref:`bool`\ ) |virtual| | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | :ref:`DrawMode` | :ref:`get_draw_mode`\ (\ ) |const| | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_hovered`\ (\ ) |const| | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_pressed_no_signal`\ (\ pressed\: :ref:`bool`\ ) | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Segnali -------------- .. _class_BaseButton_signal_button_down: .. rst-class:: classref-signal **button_down**\ (\ ) :ref:`🔗` Emesso quando il pulsante comincia a essere premuto. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_signal_button_up: .. rst-class:: classref-signal **button_up**\ (\ ) :ref:`🔗` Emesso quando il pulsante smette di essere premuto. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_signal_pressed: .. rst-class:: classref-signal **pressed**\ (\ ) :ref:`🔗` Emesso quando il pulsante viene commutato o premuto. Questo è su :ref:`button_down` se :ref:`action_mode` è :ref:`ACTION_MODE_BUTTON_PRESS` e su :ref:`button_up` altrimenti. Se hai bisogno di conoscere lo stato di pressione del pulsante (e :ref:`toggle_mode` è attivo), usa invece :ref:`toggled`. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_signal_toggled: .. rst-class:: classref-signal **toggled**\ (\ toggled_on\: :ref:`bool`\ ) :ref:`🔗` Emesso quando il pulsante è stato appena commutato tra lo stato premuto e lo stato normale (solo se :ref:`toggle_mode` è attivo). Il nuovo stato è contenuto nell'argomento ``toggled_on``. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerazioni ------------------------ .. _enum_BaseButton_DrawMode: .. rst-class:: classref-enumeration enum **DrawMode**: :ref:`🔗` .. _class_BaseButton_constant_DRAW_NORMAL: .. rst-class:: classref-enumeration-constant :ref:`DrawMode` **DRAW_NORMAL** = ``0`` Lo stato normale (ovvero non premuto, non passato dal mouse, non attivato e abilitato) dei pulsanti. .. _class_BaseButton_constant_DRAW_PRESSED: .. rst-class:: classref-enumeration-constant :ref:`DrawMode` **DRAW_PRESSED** = ``1`` Lo stato dei pulsanti è premuto. .. _class_BaseButton_constant_DRAW_HOVER: .. rst-class:: classref-enumeration-constant :ref:`DrawMode` **DRAW_HOVER** = ``2`` Lo stato dei pulsanti che hanno il cursore sopra. .. _class_BaseButton_constant_DRAW_DISABLED: .. rst-class:: classref-enumeration-constant :ref:`DrawMode` **DRAW_DISABLED** = ``3`` Lo stato dei pulsanti è disattivato. .. _class_BaseButton_constant_DRAW_HOVER_PRESSED: .. rst-class:: classref-enumeration-constant :ref:`DrawMode` **DRAW_HOVER_PRESSED** = ``4`` Lo stato dei pulsanti sono sia con il cursore sopra e premuto. .. rst-class:: classref-item-separator ---- .. _enum_BaseButton_ActionMode: .. rst-class:: classref-enumeration enum **ActionMode**: :ref:`🔗` .. _class_BaseButton_constant_ACTION_MODE_BUTTON_PRESS: .. rst-class:: classref-enumeration-constant :ref:`ActionMode` **ACTION_MODE_BUTTON_PRESS** = ``0`` Richiede solo una pressione per considerare il pulsante come cliccato. .. _class_BaseButton_constant_ACTION_MODE_BUTTON_RELEASE: .. rst-class:: classref-enumeration-constant :ref:`ActionMode` **ACTION_MODE_BUTTON_RELEASE** = ``1`` Richiedere una pressione e un successivo rilascio prima di considerare il pulsante come cliccato. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Descrizioni delle proprietà ------------------------------------------------------ .. _class_BaseButton_property_action_mode: .. rst-class:: classref-property :ref:`ActionMode` **action_mode** = ``1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_action_mode**\ (\ value\: :ref:`ActionMode`\ ) - :ref:`ActionMode` **get_action_mode**\ (\ ) Determina quando il pulsante viene considerato cliccato. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_button_group: .. rst-class:: classref-property :ref:`ButtonGroup` **button_group** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_button_group**\ (\ value\: :ref:`ButtonGroup`\ ) - :ref:`ButtonGroup` **get_button_group**\ (\ ) Il :ref:`ButtonGroup` associato al pulsante. Da non confondere con i gruppi di nodi. \ **Nota:** Il pulsante verrà configurato come pulsante di opzione se gli viene assegnato un :ref:`ButtonGroup`. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_button_mask: .. rst-class:: classref-property |bitfield|\[:ref:`MouseButtonMask`\] **button_mask** = ``1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_button_mask**\ (\ value\: |bitfield|\[:ref:`MouseButtonMask`\]\ ) - |bitfield|\[:ref:`MouseButtonMask`\] **get_button_mask**\ (\ ) Maschera binaria per scegliere a quali pulsanti del mouse questo pulsante risponderà. Per consentire sia il clic sinistro sia il clic destro, usa ``MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT``. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_button_pressed: .. rst-class:: classref-property :ref:`bool` **button_pressed** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_pressed**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_pressed**\ (\ ) Se ``true``, lo stato del pulsante è premuto. Significa che il pulsante è premuto o commutato (se :ref:`toggle_mode` è attivo). Funziona solo se :ref:`toggle_mode` è ``true``. \ **Nota:** Cambiando il valore di :ref:`button_pressed` verrà emesso :ref:`toggled`. Se si desidera cambiare lo stato di pressione senza emettere quel segnale, usa :ref:`set_pressed_no_signal()`. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_disabled: .. rst-class:: classref-property :ref:`bool` **disabled** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_disabled**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_disabled**\ (\ ) Se ``true``, il pulsante è disabilitato e non può essere cliccato o commutato. \ **Nota:** Se il pulsante viene disattivato mentre è tenuto premuto, verrà emesso :ref:`button_up` . .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_keep_pressed_outside: .. rst-class:: classref-property :ref:`bool` **keep_pressed_outside** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_keep_pressed_outside**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_keep_pressed_outside**\ (\ ) Se ``true``, il pulsante rimane premuto quando si sposta il cursore fuori dal pulsante mentre lo si preme. \ **Nota:** Questa proprietà influisce solo sull'aspetto visivo del pulsante. I segnali saranno emessi nello stesso momento a prescindere dal valore di questa proprietà. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_shortcut: .. rst-class:: classref-property :ref:`Shortcut` **shortcut** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_shortcut**\ (\ value\: :ref:`Shortcut`\ ) - :ref:`Shortcut` **get_shortcut**\ (\ ) La scorciatoia associata al pulsante. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_shortcut_feedback: .. rst-class:: classref-property :ref:`bool` **shortcut_feedback** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_shortcut_feedback**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_shortcut_feedback**\ (\ ) Se ``true``, il pulsante verrà evidenziato per un breve periodo di tempo quando la sua scorciatoia viene attivata. Se ``false`` e :ref:`toggle_mode` è ``false``, la scorciatoia si attiverà senza alcun feedback visivo. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_shortcut_in_tooltip: .. rst-class:: classref-property :ref:`bool` **shortcut_in_tooltip** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_shortcut_in_tooltip**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_shortcut_in_tooltip_enabled**\ (\ ) Se ``true``, il pulsante aggiungerà informazioni sulla sua scorciatoia nel tooltip. \ **Nota:** Questa proprietà non fa nulla quando il controllo del tooltip viene personalizzato attraverso :ref:`Control._make_custom_tooltip()`. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_toggle_mode: .. rst-class:: classref-property :ref:`bool` **toggle_mode** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_toggle_mode**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_toggle_mode**\ (\ ) Se ``true``, il pulsante è in modalità di commutazione. Fa invertire lo stato del pulsante da premuto a non premuto ogni volta che si clicca sulla sua area. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Descrizioni dei metodi -------------------------------------------- .. _class_BaseButton_private_method__pressed: .. rst-class:: classref-method |void| **_pressed**\ (\ ) |virtual| :ref:`🔗` Chiamato quando il pulsante viene premuto. Se hai bisogno di conoscere lo stato di pressione del pulsante (e se :ref:`toggle_mode` è attivo), usa invece :ref:`_toggled()`. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_private_method__toggled: .. rst-class:: classref-method |void| **_toggled**\ (\ toggled_on\: :ref:`bool`\ ) |virtual| :ref:`🔗` Chiamato quando il pulsante è commutato (solo se :ref:`toggle_mode` è attivo). .. rst-class:: classref-item-separator ---- .. _class_BaseButton_method_get_draw_mode: .. rst-class:: classref-method :ref:`DrawMode` **get_draw_mode**\ (\ ) |const| :ref:`🔗` Restituisce lo stato visivo utilizzato per disegnare il pulsante. Ciò è utile principalmente quando si implementa il proprio codice di disegno sovrascrivendo _draw() o collegandosi al segnale "draw". Lo stato visivo del pulsante è definito dall'enumerazione :ref:`DrawMode`. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_method_is_hovered: .. rst-class:: classref-method :ref:`bool` **is_hovered**\ (\ ) |const| :ref:`🔗` Restituisce ``true`` se il mouse è entrato nel pulsante e non lo ha ancora lasciato. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_method_set_pressed_no_signal: .. rst-class:: classref-method |void| **set_pressed_no_signal**\ (\ pressed\: :ref:`bool`\ ) :ref:`🔗` Cambia lo stato :ref:`button_pressed` del pulsante, senza emettere :ref:`toggled`. Da usare quando si desidera solo cambiare lo stato del pulsante senza inviare l'evento premuto (ad esempio quando si inizializza una scena). Funziona solo se :ref:`toggle_mode` è ``true``. \ **Nota:** Questo metodo non rilascia gli altri pulsanti in :ref:`button_group`. .. |virtual| replace:: :abbr:`virtual (Questo metodo dovrebbe solitamente essere sovrascritto dall'utente per aver un effetto.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Questo metodo non ha effetti collaterali. Non modifica alcuna variabile appartenente all'istanza.)` .. |vararg| replace:: :abbr:`vararg (Questo metodo accetta qualsiasi numero di argomenti oltre a quelli descritti qui.)` .. |constructor| replace:: :abbr:`constructor (Questo metodo è utilizzato per creare un tipo.)` .. |static| replace:: :abbr:`static (Questo metodo non necessita di alcun'istanza per essere chiamato, quindi può essere chiamato direttamente usando il nome della classe.)` .. |operator| replace:: :abbr:`operator (Questo metodo descrive un operatore valido da usare con questo tipo come operando di sinistra.)` .. |bitfield| replace:: :abbr:`BitField (Questo valore è un intero composto da una maschera di bit dei seguenti flag.)` .. |void| replace:: :abbr:`void (Nessun valore restituito.)`